java switch多分支语句
虽然,通过if…else语句的嵌套,可以实现程序的多层次选择,但在过多分支的情况下,使用if…else嵌套可能有点勉强。即便在较少的分支中,使用If else嵌套的方法实现分支选择,不但会使代码的可读性不高,而执行效果也偏低。
在这种情况下,使用switch语句可以解决上述的问题。Switch语句用于将一个表达式的值同许多其他值比较,并按比较结果选择执行的语句。Switch语句的一般语法形式如下所示:
Switch(表达式)
{
Case value1:
statement1;
break;
Case value2:
statement2;
break;
.
.
Default:
Default statement3
Break;
}
Switch语句遵守以下规则:
● Switch表达式必须是字符、字节、短整型和整型的数值,而且必须包含在圆括号内。
● Value1、value2必须与switch表达式有相同的数据类型。当case语句中的值与switch表达式中的值匹配时,执行case语句中的结果语句。case语句按照次序顺序执行。
● 关键字break为可选项,它应该用在每个case语句的末尾,以终止switch语句后面部分的执行。如果没有使用break语句,将继续执行下面的case语句。
● Default项为可选项,当指定的情况都不能与switch表达式匹配时,使用default项执行相应的动作。
● 各个case语句(包括default语句)的次序无关紧要,但是遵循各个case语句的逻辑次序并将default语句放在最后是良好的编程风格。
下面通过创建实例,说明switch语句的使用方法,代码如下所示。
import java.util.Scanner;
public class Toswitch
{
public static void main(String[] args)
{
System.out.print("计算当前月的天数,请输入1-12的整型数字:\n");
Scanner input=new Scanner(System.in); //声明输入变量
int Int(); //输入整形数字
switch(month)
{
case 1:
System.out.println(month+"月共31天");
break;
case 2:
System.out.println(month+"月共28天");
break;
case 3:
System.out.println(month+"月共31天");
break;
case 4:
System.out.println(month+"月共30天");
break;
case 5:
System.out.println(month+"月共31天");
break;
case 6:
System.out.println(month+"月共30天");
break;
case 7:
System.out.println(month+"月共31天");
break;
case 8:
System.out.println(month+"月共31天");
break;
case 9:
System.out.println(month+"月共30天");
break;
case 10:
System.out.println(month+"月共31天");
break;
case 11:
System.out.println(month+"月共30天");
switch语句表示范围 break;
case 12:
System.out.println(month+"月共31天") ;
break;
default:
System.out.println("你输入的不是1-12之间的整数");
break;
}
}
}
上述代码中,声明一个存储当前月份的month变量并通过键盘进行赋值。然后,case语句按照次序顺序查与month匹配的常量,并执行相应的语句。当month等于12时,就没有与之匹配的case语句,则会执行default语句。
尽管多数应用程序的switch语句都会使用break语句,但它却是可选的。当case语句序列中遇到break语句时,它会使程序流程从整个switch语句中退出,从switch以外的下一个语句继续执行。然而,如果该break语句没有结束与case相关的语句序列,那么就会执行从匹配case语句开始往后的所有语句,直到又遇到一个语句(或到达switch末尾)为止。程序运行时,当输入数字10时,会输出“10月当31天”,结果如图4-7所示。
图4-7 switch输出结果
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论