Java 打开eclipse
为什么输出为“ADC”,以及Java 打开eclipse,java,Java,为什么输出为“ADC”,以及D来自何处?另外,此代码中的默认和继续命令的目标是什么 char x = 'A'; while(x != 'D') { switch(x) { case 'A': System.out.print(x); x = 'D'; case 'B': System.out.print(x); x = 'C'; case 'C': System.out.print(x); x = 'D';
D
来自何处?另外,此代码中的默认
和继续
命令的目标是什么
char x = 'A';
while(x != 'D') {
switch(x) {
case 'A':
System.out.print(x); x = 'D';
case 'B':
System.out.print(x); x = 'C';
case 'C':
System.out.print(x); x = 'D';
default:
continue;
}
是的,您忘记了步骤之间的
break
s。因此,匹配案例之后的所有步骤都将执行。尝试以下方法:
switch (x) {
case 'A':
System.out.print(x);
x = 'D';
break;
case 'B':
System.out.print(x);
x = 'C';
break;
case 'C':
System.out.print(x);
x = 'D';
break;
}
看看这个开关:
int a = 0;
switch(a) {
case 0:
System.out.println("0");
case 1:
System.out.println("1");
}
执行的代码行为:
inta=0代码>
System.out.println(“0”)代码>
System.out.println(“1”)代码>
break
:
int a = 0;
switch(a) {
case 0:
System.out.println("0");
break;
case 1:
System.out.println("1");
break;
}
第一次执行开关时,选择案例“A”,打印A并将x设置为“D”,
案例之间没有中断,所以下一行执行-print D(之前x设置为'D')并将x设置为'C'。以此类推。你从
A开始。因为x!='D'
在循环时输入。
现在,流程如下所示:
- 输入
案例“A”
- 打印
A
并分配x='D'
- 转到案例“B”
打印D
(因为x=='D'
)并分配x='C'
通过案例“C”
打印C
(因为x=='C'
)并分配x='D'
转到默认值
(当您找不到匹配的案例时,通常会达到该值)
继续
(这意味着在
循环时返回到的开始)
由于x==“D”
该条件的计算结果为false
,因此不会进入循环
==>结果:ADC
已打印。开关语句具有所谓的内容
您需要在每个案例结束时中断
,否则所有案例都将运行,就像这里发生的一样
char x = 'A'; //starts off as A
while(x != 'D') {
switch(x) {
case 'A':
System.out.print(x); x = 'D'; //here is gets printed and changed to D
case 'B': //you fall through here because there's no break
System.out.print(x); x = 'C'; //print again then change to C
case 'C': //fall through again
System.out.print(x); x = 'D'; //print again then change to D
default:
continue;
如果匹配,您只需输入案例
(因此,如果它以C开头,则只打印一次),但一旦找到匹配,您也可以进入其他案例
如果你添加了break
s,那么你就不会再失败了
char x = 'A';
while(x != 'D') {
switch(x) {
case 'A': //match
System.out.print(x); x = 'D'; //print then modify
break; //break
case 'B':
System.out.print(x); x = 'C';
break;
case 'C':
System.out.print(x); x = 'D';
break;
default:
continue;
因为没有
中断代码>读@Tunaki你说没有中断是什么意思?就像只有案例A,B和C一样,D是从哪里来的?如果开关未发现任何情况,是否意味着它默认从设置x=D