流程控制语句-if

在程序中我们需用去判断不同的情况做不同的处理,这个时候就需要使用到流程控制语句来处理。我们先来学习最常用的流程控制语句if。

格式

if语句其实有三种部分组成的

三个部分:
①if部分

  1. if(判断表达式){<br /> 语句体;<br /> }<br /> else if部分
  2. else if(判断表达式){<br /> 语句体;<br /> }<br /> else部分
  3. else{<br /> 语句体;<br /> }

一个完整的if语句,首先在最前面有且仅有一个if部分,后面会有0个到多个else if语句,最后会有0个或1个else

例如:

  1. if(判断表达式1){
  2. 语句体1;
  3. }
  1. if(判断表达式1){
  2. 语句体1;
  3. }else if(判断表达式2){
  4. 语句体2;
  5. }
  1. if(判断表达式1){
  2. 语句体1;
  3. }else if(判断表达式2){
  4. 语句体2;
  5. }else if(判断表达式3){
  6. 语句体3;
  7. }
  1. if(判断表达式1){
  2. 语句体1;
  3. }else if(判断表达式2){
  4. 语句体2;
  5. }else if(判断表达式3){
  6. 语句体3;
  7. }else if(判断表达式4){
  8. 语句体4;
  9. }else{
  10. 语句体n+1;
  11. }
  1. if(判断表达式1){
  2. 语句体1;
  3. }else{
  4. 语句体n+1;
  5. }

执行流程

  1. 从上到下依次执行判断表达式<br /> 结果为true:则执行后面紧跟着的语句体.语句体执行完了整个if语句就结束了.<br /> 结果为false:则继续判断下面一个判断表达式<br /> 如果所有判断表达式的结果都为false,在有else语句的情况下就执行else里面的语句体,没有的话if语句结束.

例如:

  1. public static void main(String[] args) {
  2. //输入年龄 判断是否能够进入网吧
  3. Scanner sc = new Scanner(System.in);
  4. System.out.println("请输入你的年龄");
  5. int age = sc.nextInt();
  6. //判断age>=18
  7. if(age>=18){
  8. System.out.println("可以进入网吧");
  9. }else{
  10. System.out.println("未成年不能进入网吧");
  11. }
  12. }

注意

  1. ①一旦执行了一个大括号中的语句体,整个if语句就结束了.不可能出现执行两个语句体的情况.<br /> **②如果大括号中的语句体只有一行代码的时候可以把大括号省略.但是建议永远不要省略**

练习

1.判断下面代码的输出结果

  1. int a=10;
  2. int b=20;
  3. if(a>5){
  4. System.out.print(1);
  5. }else if(b>10){
  6. System.out.print(2);
  7. }else{
  8. System.out.print(3);
  9. }
  10. System.out.print(4);

2.判断下面代码的输出结果 1 5 9

  1. int a=10;
  2. int b=20;
  3. if(a>1){
  4. System.out.print(1);
  5. if(b>22){
  6. System.out.print(4);
  7. }else if(a>3){
  8. System.out.print(5);
  9. }
  10. if(a>20){
  11. System.out.print(8);
  12. }else{
  13. System.out.print(9);
  14. }
  15. }else if(a>9){
  16. System.out.print(2);
  17. if(b>10){
  18. System.out.print(6);
  19. }else if(a>3){
  20. System.out.print(7);
  21. }
  22. }else if(b>2){
  23. System.out.print(3);
  24. }

3.按照要求编写代码

让用户键盘录入语文,英语,数学的考试成绩。如果总分小于180分要求输出:由于你的优秀,我想和你家长聊聊。

4.按照要求编写代码

让用户键盘录入语文,英语,数学的考试成绩。如果总分小于180分要求输出:由于你的优秀,我想和你家长聊聊。否则就输出:同九义,何汝秀

5.按照要求编写代码

让用户键盘录入语文,英语,数学的考试成绩。

  1. 满足不同的条件输出不同的内容(要求只能输出一种)
条件 输出内容
总分<180 叫家长
总分>=180并且语数外分数都大于98分 恭喜升任五道杠大队长
总分>=180但是做不了五道杠的情况下如果语数外分数都大于95分 恭喜升任班长
总分>=180即做不了五道杠也做不了班长的情况下 同九义,何汝秀

6.下面代码的执行结果是什么?

  1. int a=10;
  2. int b;
  3. if(a%2==0){
  4. b=0;
  5. }else if(a%2==1){
  6. b=1;
  7. }
  8. System.out.println(b);

答案: 会在编译的时候报错.因为在编译的时候编译器看到了if…else if语句.它认为有可能两个判断都不成立.这样的话b就可能出现没有赋值直接使用的情况.