流程控制用来控制程序中各语句的执行顺序
if分支结构
基本的if选择结构
语法:
示例:
1 2 3 4 5 6
| Scanner input = new Scanner(System.in); System.out.print("输入bunny的Java成绩: "); //提示要输入Java成绩 int score = input.nextInt(); //从控制台获取Java成绩 if ( score > 95 ) { //判断是否大于90分 System.out.println("老师说:不错,奖励一个5!"); }
|
复杂条件的if选择结构
示例:
1 2 3 4 5 6 7 8
| Scanner input = new Scanner(System.in); System.out.print("输入bunny的Java成绩: "); //提示要输入Java成绩 int score1 = input.nextInt(); //从控制台获取Java成绩 System.out.print("输入bunny的音乐成绩: "); //提示要输入音乐成绩 int score2 = input.nextInt(); //从控制台获取音乐成绩 if ((score1>95 && score2>90) || (score1==100 && score2>80)) { System.out.println("老师说:不错,奖励一个!"); }
|
结合运算符的优先级编写条件
1 2 3 4 5
| 最高的优先级:( ) 最低的优先级:= 优先级:!> 算术运算符 > 关系运算符 > && > || 复杂条件使用括号提高可读性
|
if-else选择结构
语法:
1 2 3 4 5 6
| if ( 条件 ) { //代码块1 } else { //代码块2 }
|
示例:
1 2 3 4 5 6 7 8
| Scanner input = new Scanner(System.in); System.out.print("输入bunny的Java成绩: "); //提示要输入Java成绩 int score = input.nextInt(); //从控制台获取Java成绩 if ( score > 95 ) { System.out.println("老师说:不错,奖励一个!"); }else{ System.out.println("老师说:你这不行啊!"); }
|
多重if选择结构
语法:
1 2 3 4 5 6 7 8 9 10
| if ( 成绩>=95) { //代码块1 } else if (成绩>=60) { //代码块2 //else if可以有多个,但是里面条件应当不同 } else { //代码块3 }
|
示例:
1 2 3 4 5 6 7 8 9 10
| Scanner input = new Scanner(System.in); System.out.print("请输入考试成绩: "); //提示要输入考试成绩 int score = input.nextInt(); //从控制台获取成绩 if (score >= 95) { // 考试成绩>=95 System.out.println("优秀"); } else if (score >= 60) { // 95>考试成绩>=60 System.out.println("及格"); } else { // 考试成绩<60 System.out.println("差"); }
|
使用多重if选择语句处理问题时需要注意顺序
嵌套if选择结构
嵌套if控制语句可以通过外层语句和内层语句的协作,增强程序的灵活性。前面的所有if相关语句块都可以当成一条普通语句放入if中,可以随意组合。
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Scanner input = new Scanner(System.in); System.out.print("请输入比赛成绩(s):"); double score = input.nextDouble(); System.out.print("请输入性别:"); String gender = input.next(); if(score>10){ if(gender.equals("男")){ System.out.println("进入男子组决赛!"); }else if(gender.equals("女")){ System.out.println("进入女子组决赛!"); } }else{ System.out.println("淘汰!"); }
|
switch分支结构
语法:
1 2 3 4 5 6 7 8 9 10 11 12
| switch (表达式) { case 常量 1: 语句; break; case 常量 2: 语句; break; … default: 语句; }
|
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| int mingCi = 1; //名次 switch (mingCi){ case 1: System.out.println("参观清华大学计算机学院"); break; case 2: System.out.println("奖励习题集十册"); break; case 3: System.out.println("奖励习题集一册"); break; default: System.out.println("没有任何奖励"); }
|
注意事项:
1 2 3 4 5
| 表达式只能是int类型或者可以自动转换成int类型的数据,jdk8之后可以识别字符串类型(实际也是转换成int); 如果需要每个case执行完后跳出,在每个case后不要忘记写break; case后的常量值不能相同; default块顺序可以变动,但要注意其执行顺序,通常,default块放在末尾,也可以省略; 只能处理等值条件判断的情况。
|