交换机语句的说明

时间:2013-11-15 09:24:27

标签: java

public class g{
    public static void main(String [] args){
    for(int x = 1; x <17; x +=3){
        switch(x){
            case -1: case 0: case 1:
                System.out.print("Breeze");
            case 2: System.out.print("Easy");
            case 3:
            case 4: System.out.print("As"); break;
            case 5: System.out.print("Pie"); break;
            case 6: case 7: System.out.print("No");
            case 8: System.out.print("Problem");
            case 9: break;
            case 10: System.out.print("Like");
            case 12: System.out.print("Nothing"); break;
            case 13:
            case 14: System.out.print("phew"); break;
        }
        System.out.println();
    }
}
}

为什么打印出来 BreezeEasyAs
作为
NoProblem
LikeNothing

我认为它会在每个人之后打印默认值,如Breezephew中的第一个

3 个答案:

答案 0 :(得分:1)

1开始,它以3s(x+=3)的速度上升。

所以你得到case 1然后case 47101316

但是你不总是break,所以在某些情况下它会落到下一个case

这就是case 1实际给出&#34; BreezeEasyAs&#34;的原因,它在抓住case 1,2,3 & 4之前运行break

答案 1 :(得分:0)

首次x = 1打印Breeze时,但由于声明没有中断,因此会继续打印Easy&amp; ; As所以它到达终点System.out.println();您将在控制台中获得BreezeEasyAs,然后以类似的方式运行(每次增加+3)

所以下一次:
x = 4打印As找到休息时间再次增加3 什么时候 x = 7打印No找不到break并打印Problem(因此控制台输出显示为NoProblem)希望您可以找出其余的

答案 2 :(得分:0)

以下是关于您可能会受益的开关盒结构的一些观点;

  • switch-case是一种特殊结构,在某些情况下会替换if-else。

  • 在主要编程语言(java,c ++)中只有原语, 调查员可以切换。

  • case只代表一个锚(或所谓的标签),因此只使用原语,因为在编译时必须知道跳转标签。

  • 由于案例关键字实际上代表一个跳跃点,不会导致 像if-else语句一样分支。

  • Switch执行跳跃部分(就像某些旧版本中使用的 goto 一样) 编程语言)

  • 通过跳跃执行点,你必须放置 break 您认为自己已完成案例

  • 的关键字
  • 如果你不执行中断执行将继续。

  • 默认关键字代表所有未处理的案例,通常用于检测未处理的案件

在您的情况下,请考虑您将x递增3并且没有默认。我们考虑x = 7;在这种情况下,执行将跳转到案例7:并继续执行,直到达到休息时间,然后执行所有操作,直到案例9 ,因为有下一个休息时间。

相关问题