2我学java之Switch case

来源:互联网 发布:淘宝网店培训 编辑:程序博客网 时间:2024/05/22 08:05

Switch case用法

switch(表达式)
{
case
常量表达式1:语句1;
....
case
常量表达式2:语句2;
default:
语句;
}
1.default
就是如果没有符合的case就执行它,default并不是必须的.
2.case
后的语句可以不用大括号.
3.switch
语句的判断条件可以接受int,byte,char,short,不能接受其他类型.
4.
一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句.

原理归原理,下面是几个容易混淆的例子.

1.
标准型(case后面都有break语句)
int i=3;
switch(i)
{
   case 1:
       System.out.println(1);
       break;
   case 2:
       System.out.println(2);
       break;
   case 3:
       System.out.println(3);
       break;
   default:
       System.out.println("default");
       break;
}
输出结果:
         3
2.
特殊型1(不是完全有break语句,可以完成一些特殊应用)
int year=2005;
int month=3;
int day;
switch(month)
{
   case 1:
   case 3:
   case 5:
   case 7:
   case 8:
   case 10:
   case 12:
         day=31;
         break;
   case 2:
         day=28;
         break;
   case 4:
   case 6:
   case 9:
   case 11:
          day=30;
          break;
}
这里 day=31;
3.
特殊型2(default的位置)
int i=1;
switch(i)
{
   case 1:
       System.out.println(1);
    default:
       System.out.println("default");
   case 2:
       System.out.println(2);
       break;
   case 3:
       System.out.println(3);
       break;
}
输出结果:
         1
         default
         2

  continue语句只能使用在循环语句内部,功能是跳过该次循环,继续执行下一次循环结构。在whiledo-while语句中continue语句跳转到循环条件处开始继续执行,而在for语句中continue语句跳转到迭代语句处开始继续执行。

         下面以while语句为例,来说明continue语句的功能,示例代码如下:

                  int i = 0;

                   while(i < 4){

                            i++;

                            if(i == 2){

                                     continue;

                            }

                            System.out.println(i);

                   }

         则该代码的执行结果是:

                   1

                   3

                   4

         在变量i的值等于2时,执行continue语句,则后续未执行完成的循环体将被跳过,而直接进入下一次循环。

         在实际的代码中,可以使用continue语句跳过循环中的某些内容。

         和前面介绍的break语句类似,continue语句使用在循环嵌套的内部时,也只是跳过所在循环的结构,如果需要跳过外部的循环,则需要使用标签语句标识对应的循环结构。示例代码如下:

                   lable1:

                            for(int i = 0;i < 10;i++){

                                     for(int j = 0;j < 5;j++){

                                               System.out.println(j);

                                               if(j == 3){

                                                        continue  label1;

                                               }

                                     }

                            }

         这样在执行continue语句时,就不再是跳转到j++语句,而是直接跳转到i++语句。