黑马程序员技术交流社区

标题: 关于swith语句疑问!请详细解释! [打印本页]

作者: 521123270    时间: 2015-5-16 16:31
标题: 关于swith语句疑问!请详细解释!
1.      下列代码运行的结果是(  )
public static void main(String[] args) {
   
    intnum = 4;
    inty = 0;
    switch(num){
       case1:
           y++;
       case2:
           y+=2;  
       case3:
           y+=3;
       case4:
           y+=4;
       case5:
           y+=5;
    }
    System.out.println(y);
{:3_57:} 请详细解释下!!谢谢!

作者: binglin    时间: 2015-5-16 16:31
结果:15
执行default:y+=6;case4;case5的语句
作者: binglin    时间: 2015-5-16 18:29
结果:9
switch(num)中num等于n,就成case n执行到结束。题中num的值为4,所以,执行case4的语句和case5的语句
改成
public static void main(String[] args) {

            

            int num = 4;

            int y = 0;

            switch(num){

               case 1:

                   y++;break;

               case 2:

                   y+=2; break;

               case 3:

                   y+=3;break;

               case 4:

                   y+=4;break;

               case 5:

                   y+=5;break;

            }

            System.out.println(y);
        }
就会只执行一个case4的语句就结束
作者: 521123270    时间: 2015-5-16 18:35
binglin 发表于 2015-5-16 18:29
结果:9
switch(num)中num等于n,就成case n执行到结束。题中num的值为4,所以,执行case4的语句和case5的语 ...

1.      下列代码运行的结果是(  )

public static void main(String[] args) {

   

    intnum = 9;

    inty = 0;

    switch(num){

       case1:

           y++;

       case2:

           y+=2;  

       case3:

           y+=3;

       case4:

           y+=4;

       case5:

           y+=5;

    }

    System.out.println(y); 那我在case : 3;下面加个default:y+=6;num 改成9;结果又会怎么样呢?{:3_57:}
作者: binglin    时间: 2015-5-16 20:00
结果:15
从default:y+=6执行到结束
作者: zouzouzou    时间: 2015-5-16 21:31
结果是9
case 语句中没有break跳出条件,导致在case 4结束后没有停止,执行了case 5;所以结果是9.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2