P50 049if-else双选择结构
if(布尔表达式){
语句块1}
else{
语句块2}
当布尔表达式为真时,执行语句块1,否则,执行语句块2。也就是else部分。流程图如图3-3所示。
/** * 测试ifelse双选择结构 * @author Van.G * */public class TestIfelse { public static void main(String[]args) { int h=(int)(6*Math.random()+1); System.out.println(h); if(h<=3) { System.out.println("小"); }else { System.out.println("大"); } System.out.println("#######"); //随机产生一个[0.0, 4.0)区间的半径,并根据半径求圆的面积和周长 double r = 4 * Math.random(); //Math.pow(r, 2)求半径r的平方 double area = Math.PI * Math.pow(r, 2); double circle = 2 * Math.PI * r; System.out.println("半径为:" + r); System.out.println("面积为:" + area); System.out.println("周长为:" + circle); //如果面积>=周长,则输出"面积大于等于周长",否则,输出周长大于面积 if(area >= circle) { System.out.println("面积大于等于周长"); } else { System.out.println("周长大于面积"); } }}
51_050ifelse ifelse多选择结构
if(布尔表达式1){}
语句块1;}else if(布尔表达式2){
语句块2;}。。。else if(布尔表达式n){
语句块n;} else{
语句块n+1;
}
当布尔表达式1为真时,执行语句块1;否则,判断布尔表达式2,当布尔表达式2为真时,执行语句块2;否则,继续判断布尔表达式3······;如果1~n个布尔表达式均判定为假时,则执行语句块n+1,也就是else部分。流程图如图3-7所示。
/** * TestIFleseifelse * @author Van.G * */public class TestIfElseIFelse { public static void main(String[]args) { int age = (int) (100 * Math.random()); System.out.print("年龄是" + age + ", 属于"); if (age < 15) { System.out.println("儿童, 喜欢玩!"); } else if (age < 25) { System.out.println("青年, 要学习!"); } else if (age < 45) { System.out.println("中年, 要工作!"); } else if (age < 65) { System.out.println("中老年, 要补钙!"); } else if (age < 85) { System.out.println("老年, 多运动!"); } else { System.out.println("老寿星, 古来稀!"); } }}
课堂练习
仿照【示例3-5】,实现如下功能:
随机生成一个100以内的成绩,当成绩在85及以上的时候输出”等级A”,70以上到84之间输出”等级B”,60到69之间输出”等级C”,60以下输出”等级D”。
P52 051_switch语句的使用
/** * TestIFleseifelse * @author Van.G * */public class TestIfElseIFelse { public static void main(String[]args) { int score = (int) (100 * Math.random()); System.out.print("成绩是是" + score ); if (score < 60) { System.out.println("等级D"); } else if (score < 70) { System.out.println("等级C"); } else if (score < 80) { System.out.println("等级B"); } else if (score < 90) { System.out.println("等级A"); } }}
P52 051——switch的语句的使用
语法结构:
switch(表达式){
case 值1; 语句序列1;
【break】;
case 值2:
语句序列2;
【break】;
...............
[default:默认语句;]
}
switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语句处或者是switch语句的末尾。如果表达式的值与任一case值不匹配,则进入default语句(如果存在default语句的情况)。
根据表达式值的不同可以执行许多不同的操作。switch语句中case标签在JDK1.5之前必须是整数(long类型除外)或者枚举,不能是字符串,在JDK1.7之后允许使用字符串(String)。
大家要注意,当布尔表达式是等值判断的情况,可以使用if-else if-else多选择结构或者switch结构,如果布尔表达式区间判断的情况,则只能使用if-else if-else多选择结构。
switch多选择结构的流程图如图3-10所示。
表示区间的时候可以用ifelse表示值得时候用switch,用于多值得判断,【】表示可选的。break表示结束了break语句
switch也是可以使用字符串的
/** * 测试switch语句 * @author Van.G * */public class TestSwitch { public static void main(String[]args) { int month=(int)(1+12*Math.random()); System.out.println("月份:"+month); switch(month) { case 1: System.out.println("一月份:过新年"); break; case 2: System.out.println("二月份:开春了!!"); break; default: System.out.println("我是其他的月份!!!"); break; } System.out.println("############"); char c = 'a'; int rand = (int) (26 * Math.random()); char c2 = (char) (c + rand); System.out.print(c2 + ": "); switch (c2) { case 'a': case 'e': case 'i': case 'o': case 'u': System.out.println("元音"); break; case 'y': case 'w': System.out.println("半元音"); break; default: System.out.println("辅音"); } }}
多值判断适合用switch,但是switch完全可以用if-else来代替的