零基础学Java第2版
上QQ阅读APP看书,第一时间看更新

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表示上述条件都不满足时,则执行它设置的输出。

【运行效果】

是八月份

说明

通过观察上面的程序段,会发现使用分支语句,整个程序显得更容易阅读。