本章主要讨论了Java的三种基本流程控制结构及其相关的语句,它们是顺序结构、选择结构与重复结构。下面通过本节的综合练习让大家对本章所讲述的内容有更深入的认识。
条件选择语句根据测试条件选择性地执行某些分支的程序语句区块,它包含两种不同作用的流程控制语句:if…else与switch…case条件选择语句。两者最大的差异在于:switch...case语句只能引入一个参数,也就是说它无法执行“比较”与“判断”的操作。下面的范例程序综合运用上述两种流程控制语句来完成某项考试成绩的评级工作。
【综合练习】使用条件选择语句进行考试成绩的评级
01 //使用条件选择语句进行考试成绩的评级 02 class WORK03_01 { 03 public static void main(String args[]) { 04 int score = 88; 05 int level = 0; 06 //嵌套if…else语句 07 System.out.println("使用if...else语句进行判断"); 08 if (score >= 60) { 09 if(score >= 75) { 10 if(score >= 90) { 11 System.out.println("成绩" + score + " 是甲等!"); 12 level = 1; 13 } 14 else { 15 System.out.println("成绩" + score + " 是乙等!"); 16 level = 2; 17 } 18 } 19 else { 20 System.out.println("成绩" + score + " 是丙等!"); 21 level = 3; 22 } 23 } 24 else 25 System.out.println("成绩" + score + " 不及格!"); 26 // switch…case语句 27 System.out.println("使用switch...case语句判断"); 28 switch(level) { 29 case 1:System.out.println("成绩" + score + " 是甲等!");break; 30 case 2:System.out.println("成绩" + score + " 是乙等!");break; 31 case 3:System.out.println("成绩" + score + " 是丙等!");break; 32 default:System.out.println("成绩" + score + " 是丁等!");break; 33 } 34 } 35 }
【程序的执行结果】
程序的执行结果可参考图3-24。
图3-24
判断闰年的问题也适合用以上结构来解决,闰年计算的规则是“四年一闰,百年不闰,四百年一闰”。下面的范例程序使用if else if条件选择语句来执行闰年的计算规则,以判断某一年份是否为闰年。
【综合练习】闰年的判断与应用
01 //闰年的判断与应用 02 public class WORK03_02 { 03 public static void main(String args[]) { 04 int year=2008;//声明存储年份的变量,并赋值 05 //声明整数变量 06 if(year % 4 !=0) /*如果year不是4的倍数*/ 07 System.out.println(year+" 年不是闰年。"); /*显示year不是闰年*/ 08 else if(year % 100 ==0) /*如果year是100的倍数*/ 09 { 10 if(year % 400 ==0) /*且year是400的倍数*/ 11 System.out.println(year+" 年是闰年。"); 12 /*显示year是闰年*/ 13 else /*否则*/ 14 System.out.println(year+" 年不是闰年。"); 15 /*显示year不是闰年*/ 16 } 17 else /*否则*/ 18 System.out.println(year+" 年是闰年。"); /*显示year是闰年*/ 19 } 20 }
【程序的执行结果】
程序的执行结果可参考图3-25。
图3-25
循环常被用来计算某一范围的数字总和。下面的范例程序就是使用三种循环来计算1~50的累加之和。
【综合练习】使用各种循环计算1~50的累加之和
01 //使用各种循环计算1~50的累加之和 02 class WORK03_03 { 03 public static void main(String args[]) { 04 int totalSum = 0; 05 int var1 = 1; 06 int var2 = 1; 07 int var4 = 50; 08 //while循环 09 while(var1 <= var4) { 10 totalSum += var1; 11 var1 += 1; 12 } 13 System.out.println("用while循环计算1至50的累加之和为" + totalSum); 14 totalSum = 0; 15 //do…while循环 16 do { 17 totalSum += var2; 18 var2 += 1; 19 }while(var2 <= var4); 20 System.out.println("do…while循环计算1至50的累加之和为" + totalSum); 21 totalSum = 0; 22 //for循环 23 for (int var3 = 1; var3 <= var4; var3++) 24 totalSum += var3; 25 System.out.println("用for循环计算1至50的累加之和为" + totalSum); 26 } 27 }
【程序的执行结果】
程序的执行结果可参考图3-26。
图3-26