4.5 分支语句
在讲述条件判断语句时,曾经提到当判断条件过多时,可以使用分支语句来编写。分支语句的基本结构是:
01 switch(整数因子)
02 {
03 case整数值1:语句;break;
04 case整数值2:语句;break;
05 case整数值3:语句;break;
06 case整数值4:语句;break;
07 case整数值5:语句;break;
08 ……
09 default:语句;
10 }
同样,先看看分支语句的流程图,如图4.9所示。
如果仍然使用条件判断语句,整个程序段会显得层次过多,程序显得过于复杂,不易阅读。
图 4.9 分支语句流程图
【实例4.19】下面通过实际程序段,来了解条件判断语句和分支语句的区别所在。
01 public class control16
02 {
03 public static void main(String[]args)
04 {
05 int i=8;
06 if(i==1)
07 {System.out.println("是一月份");}
08 if(i==2)
09 {System.out.println("是二月份");}
10 if(i==3)
11 {System.out.println("是三月份");}
12 if(i==4)
13 {System.out.println("是四月份");}
14 if(i==5)
15 {System.out.println("是五月份");}
16 if(i==6)
17 {System.out.println("是六月份");}
18 if(i==7)
19 {System.out.println("是七月份");}
20 if(i==8)
21 {System.out.println("是八月份");}
22 if(i==9)
23 {System.out.println("是九月份");}
24 if(i==10)
25 {System.out.println("是十月份");}
26 if(i==11)
27 {System.out.println("是十一月份");}
28 if(i==12)
29 {System.out.println("是十二月份");}
30 }
31 }
【代码说明】第6~29行是12个条件语句if。这是判断月份,如果要判断的条件更多,是不是需要写更多的if语句呢?这说明判断条件非常多时,使用if语句显得层次有些混乱。
【运行效果】
是八月份
这个程序段看得不是很舒服,并且有点杂乱,下面再看看使用分支语句编写的程序段是什么样子。先来绘制一下流程图,如图4.10所示。
图 4.10 输出一年月份程序流程图
【实例4.20】为了便于浏览,以上的图只绘制了1月份到6月份的流程。下面是这个程序的具体代码。
01 public class control17
02 {
03 public static void main(String[]args)
04 {
05 int i=8;
06 switch(i)
07 {
08 case 1:System.out.println("是一月份");break;
09 case 2:System.out.println("是二月份");break;
10 case 3:System.out.println("是三月份");break;
11 case 4:System.out.println("是四月份");break;
12 case 5:System.out.println("是五月份");break;
13 case 6:System.out.println("是六月份");break;
14 case 7:System.out.println("是七月份");break;
15 case 8:System.out.println("是八月份");break;
16 case 9:System.out.println("是九月份");break;
17 case 10:System.out.println("是十月份");break;
18 case 11:System.out.println("是十一月份");break;
19 case 12:System.out.println("是十二月份");break;
20 default:System.out.println("fault");
21 }
22 }
23 }
【代码说明】第6~21行是完整的分支语句,每个条件通过case来设置,条件执行完后,通过break语句来中断。第20行的default表示上述条件都不满足时,则执行它设置的输出。
【运行效果】
是八月份
说明 通过观察上面的程序段,会发现使用分支语句,整个程序显得更容易阅读。