Gre*_*egD 1 java switch-statement
为什么以下代码不会抛出runtimeException?
public class Test2 extends Test {
public static void main(String[] args) {
char[] array = new char[]{'A', '\t', 'e', 'I', 'O', 'u', '\n', 'p'};
int count = 0;
for (char c : array) {
switch (c) {
case 'A':
continue;
case 'E':
count++;
break;
case 'I':
count++;
continue;
case 'o':
break;
case 'u':
count++;
continue;
}
}
System.out.println("length of array: " + array.length);
System.out.println("count= " + count);
}
Run Code Online (Sandbox Code Playgroud)
}
注意'E'和'e'不相等而且它在开关中..对'p'也一样.它确实编译并运行en print:数组的长度:8 count = 2
我今天完成了我的OCA证书并得到了上述问题.但是当我检查'e'或'p'时,我无法弄清楚它为什么不抛出运行时..这意味着每个开关中都有一个空的"默认"或什么?
这意味着每个开关或其他东西都有一个空的"默认"?
有点.如果没有case匹配指定的值,并且没有任何default情况,则没有任何反应 - 就像那样简单.
如果没有
case匹配且没有default标签,则不采取进一步操作并且交换机statement正常完成.
我本人不会在这里期待一个例外 - 我不认为我曾经使用过一种会在类似的语言结构中引发异常的语言,尽管我敢说可能存在一种.
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |