《第3章 Internet应用基础.ppt》由会员分享,可在线阅读,更多相关《第3章 Internet应用基础.ppt(85页珍藏版)》请在金锄头文库上搜索。
1、第 3 章 类中的方法,郑 莉,2,目录,3.1 方法的控制流程(自学) 3.2 异常处理简介 3.3 方法的重载(overloading) 3.4 在方法中执行脚本 3.5 本章小结,3,3.1 方法的控制流程,方法的控制流程 Java程序通过控制语句来控制方法的执行流程 Java中的流程控制结构主要有三种 顺序结构 选择结构 if语句(二路选择结构) switch语句(多路选择结构) 循环结构 for语句 while语句 do-while语句,4,3.1.1 if选择结构,语法形式 只有if分支,没有else分支 if (boolean-expression) / statement1;
2、if-else语句 if (boolean-expression) / statement1 ; else / statement2 ; ,3.1 方法的控制流程,5,3.1.1 if选择结构(续),if-else语句的特殊形式 if (boolean expression) /statement1; else if (boolean expression) /statement2; else if (boolean expression) /statement; else /statement; ,3.1 方法的控制流程,6,ex3_1 输入一个年份,判断它是不是闰年。 闰年: 能被4整除但
3、不能被100整除,或者能被400整除。 public class ex3_1 public static void main(String args) throws IOException int year; boolean IsLeapYear; System.out.println(Enter the year:); BufferedReader in =new BufferedReader( new InputStreamReader(System.in); year=(new Integer(in.readLine().intValue();,3.1.1 if选择结构(续)ex3_1.
4、java,3.1 方法的控制流程,7,IsLeapYear=(year%4=0 ,3.1.1 if选择结构(续)ex3_1.java,3.1 方法的控制流程,8,输入两个整数比较大小 import java.io.*; public class ex3_2 public static void main(String args)throws IOException int x,y; BufferedReader in = new BufferedReader( new InputStreamReader(System.in); System.out.println(Enter x and y:
5、); x=(new Integer(in.readLine().intValue(); y=(new Integer(in.readLine().intValue(); if (x!=y) if (xy) System.out.println(xy); else System.out.println(xy); else System.out.println(x=y); ,3.1.1 if选择结构(续)ex3_2.java,3.1 方法的控制流程,9,例子: If (ab) System.out.println(The larger one is: +a); else System.out.pr
6、intln(The larger one is: +b); 用条件运算符重写: System.out.println(The larger one is: + (ab)?a:b);,3.1.1 if选择结构(续)以条件运算符代替if_else,3.1 方法的控制流程,10,计算每个月的天数 static int daysInMonth(int month) if (month = 2) return(28); else if (month=4)|(month=6)|(month=9)|(month=11) return(30); else return(31); ,3.1.1 if选择结构(续
7、)例3-1,3.1 方法的控制流程,11,已知一个学生的分数,给出其分数等级。90-100分为级;80-89分为B级;70-79分为级;60-69分为D级;0-59分为E级 public class IfElseDemo public static void main(String args) int testscore = 76; char grade; if (testscore = 90) grade = A; else if (testscore = 80) grade = B; else if (testscore = 70) grade = C; else if (testscor
8、e = 60) grade = D; else grade = F; System.out.println(Grade = + grade); ,程序输出: Grade = C,3.1.1 if选择结构(续)ifElseDemo.java,3.1 方法的控制流程,12,3.1.2 switch选择结构,switch语句是多分支的选择结构 switch (switch-expression) case value1: statements for case1; break; case value2: statements for case2; break; . case valueN: stat
9、ements for caseN; break; default: statements for default case; break; 注意问题 switch-expression、常量值value1到valueN必须是整形或字符型 如果表达式的值和某个case后面的值相同,则从该case之后开始执行,直到break语句为止 default是可有可无的,若没有一个常量与表达式的值相同,则从default之后开始执行,3.1 方法的控制流程,13,if (i = 1) statementA(); else if (i = 2) statementB(); else if(i=3)|(i=4)
10、 statementC(); else if (i = 5) statementD(); else statementF(); ,switch (i) case 1: statementA();break; case 2: statementB();break; case 3: case 4: statementC();break; case 5: statementD();break; default: statementF(); ,3.1.2 switch选择结构(续)用switch代替if,3.1 方法的控制流程,14,使用switch结构计算每个月的天数 static int days
11、InMonth(int month) int days; switch(month) case 2: days = 28; break; case 4: case 6: case 9: case 11: days = 30; break; default: days = 31; return(days); ,3.1.2 switch选择结构(续)例3-2,3.1 方法的控制流程,15,用switch语句实现成绩分类的功能 public class Grade public static char gradeLevel(double g) int n = (int)Math.floor(g/10
12、); switch (n) case 10: case 9 : return(A); case 8 : return(B); case 7 : return(C); case 6 : return(D); default: return(E); ,3.1.2 switch选择结构(续)例3-3,3.1 方法的控制流程,16,public static void main(String args) System.out.println(gradeLevel(100)=+gradeLevel(100); System.out.println(gradeLevel(95.5)=+gradeLevel
13、(95.5); System.out.println(gradeLevel(88)=+gradeLevel(88); System.out.println(gradeLevel(72)=+gradeLevel(72); System.out.println(gradeLevel(68.5)=+gradeLevel(68.5); System.out.println(gradeLevel(60)=+gradeLevel(60); System.out.println(gradeLevel(59.5)=+gradeLevel(59.5); System.out.println(gradeLevel
14、(35)=+gradeLevel(35); ,3.1.2 switch选择结构(续)例3-3,3.1 方法的控制流程,17,ex3_3 输入06之间的某一个整数,然后把它转换成星期 输出。(0对应星期日) import java.io.*; public class ex3_3 public static void main(String args)throws IOException int day; BufferedReader in =new BufferedReader( new InputStreamReader(System.in); day=(new Integer(in.rea
15、dLine().intValue();,3.1.2 switch选择结构(续)补充ex3_3.java,3.1 方法的控制流程,18,switch (day) case 0: System.out.println(Sunday); break; case 1: System.out.println(Monday); break; case 2: System.out.println(Tuesday); break; case 3: System.out.println(Wednesday); break; case 4: System.out.println(Thursday); break; case 5: System.out.println(Friday); break; case 6: System.out.println(Saturday); break; default: System.out.println(Day out of range Sunday .Saturday ); break; ,3.1.2 switch选择结构(续)补充ex3_3.java,3.1 方法的控制流程,19,for循环结构 是Java三个循环语句中功能较强、使用较广泛的一个 for循环可以嵌套 一般语法格式如下 for (start-expression; check-expressi