我正在准备OCA Java SE 7示例。关于switch语句的问题: 这是代码:
int a = 5;
switch(a){
default: //print 0
case 1: //print 1
case 5: //print 5
case 8: //print 8
}
代码的输出是什么? 这是我不明白的事情: 默认通常是最后一个条件。如果默认是第一个条件怎么办? 默认情况会先匹配吗?
更进一步: 如果我更改代码,请使i = 10,这肯定不会与其余3条件匹配,但会匹配默认条件。鉴于没有休息;在我的代码中, 将程序输出:0 1 5 8 ??
更新 我不认为我的问题清楚明了...... 正如所建议的那样,我用代码尝试了它,并且我确实理解了关于坠落的规则。
如果i = 10,结果将是:0 1 5 8。
让我困惑的是: 如果我= 10当我们输入switch语句时,首先执行哪一行?
默认值://打印0
或
案例1://打印1
更新更新 感谢你们... 我想我明白了......
默认情况只会在没有匹配时触发。
在这种情况下,执行顺序应该是:
case 1:
case 5:
case 8:
//and no found yet..trigger the default case
// given that my default case is at the top and no break;
//it fall through and print: 0 1 5 8
仅供参考:我知道如何运行代码。而且我并没有期待如此大量的批评,说“自己动手做”,“#34;不要只是阅读而不是练习" ..
无论如何,谢谢。
答案 0 :(得分:4)
你应该试试看看。但我要指出的一点是,没有break
陈述。这意味着它将从最终的任何地方落下。
所以会发生什么,它会评估开关并跳转到适当的情况。从那里它将落空。
答案 1 :(得分:1)
开关只是一种被认为对一般用途安全的特定goto模式。
给出这样的东西:
if (i == 1) goto lbl1;
if (i == 5) goto lbl2;
if (i == 8) goto lbl3;
lbl4: print 0;
Lbl1: print 1;
Lbl2: print 5;
Lbl3: print 8;