Java 分支结构——if-else(二)
if...else嵌套
在 if 的语句块中,或者是在else语句块中,又包含了另外一个条件判断(可以是单分支、双分支、多分支),就构成了嵌套结构。
执行的特点: (1)如果是嵌套在if语句块中的,只有当外部的if条件满足,才会去判断内部的条件 (2)如果是嵌套在else语句块中的,只有当外部的if条件不满足,进入else后,才会去判断内部的条件
案例4:由键盘输入三个整数分别存入变量num1、num2、num3,对它们进行排序(使用 if-else if-else),并且从小到大输出
int n1 = 12, n2 = 15, n3 = 5; if (n1 > n2) { if (n3 > n1) { System.out.println(n2 + " < " + n1 + " < " + n3); } else if (n2 > n3) { System.out.println(n3 + " < " + n3 + " < " + n1); } else { System.out.println(n2 + " < " + n3 + " < " + n1); } } else { //n1 < n2 if (n3 < n1) { System.out.println(n3 + " < " + n1 + " < " + n2); } else if (n3 > n2) { System.out.println(n1 + " < " + n2 + " < " + n3); } else { System.out.println(n1 + " < " + n3 + " < " + n3); } //5 < 12 < 15 }
说明
- 语句块只有一条执行语句时,一对{}可以省略,但建议保留
- 当if-else结构是“多选一”时,最后的else是可选的,根据需要可以省略
练习1、查看一下代码输出结果
//1)对下列代码,若有输出,指出输出结果。 int x = 4, y = 1; if(x>2){//满足,内部分支 if(y>2)//不满足 System.out.println(x+y);//不输出 System.out.println("Hello If-Else"); //此段输出 }else System.out.println("x is " +x);//不输出
练习2、查看运行效果
boolean b = true; if (b == false)//不满足 System.out.println("a"); else if (b)//满足 System.out.println("b");//输出 else if(!b)//不满足 System.out.println("c"); else System.out.println("d");
练习3、定义两个整数,分别为small 和 big,如果第一个整数small大于第二个整数big,就交换。输出显示small和big变量的值。
int small = 21, big = 12; if (small > big) { int temp = small; small = big; big = temp; } System.out.println("big is " + big+" ,smail is " +small);
练习4:编写程序,声明2个int型变量并赋值。判断两数之和,如果大于等于50,打印“hello world!”
int q = 5, w = 22; if (q + w >= 50) { System.out.println("Hello world"); }
练习5:编写程序,声明2个double型变量并赋值。判断第一个数大于10.0,且第2个数小于20.0,打印两数之和。否则,打印两数的乘积。
double d1 = 10.22, d2 = 0.32; if (d1 > 10.0 && d2 < 20.0) { System.out.println(d1 + d2);//执行 } else { System.out.println(d1 * d2); }
练习6:判断水的温度
如果大于95℃,则打印“开水”;
如果大于70℃且小于等于95℃,则打印“热水”;
如果大于40℃且小于等于70℃,则打印“温水”;
如果小于等于40℃,则打印“凉水”。
double wd = 74; if (wd > 95) { System.out.println("开水"); } else if (wd > 70 && wd <= 95) { System.out.println("热水"); } else if (wd > 40 && wd <= 70) { System.out.println("温水"); } else { System.out.println("凉水"); }