一个程序,请大家看一下:
class switchText
{
final static int a=3;
public static void main(String args[])
{
for(int x=0;x<4;x++)
{
switch(x)
{
case a-3:System.out.println("0");
case a-2:System.out.println("1");
case a-1:System.out.println("2");
case a:System.out.println("3");
}
}
}
}
我觉得输出结果应该是:0123
可计算机结果是:0123123233
恳请达人解释一下!
class switchText
{
final static int a=3;
public static void main(String args[])
{
for(int x=0;x<4;x++)
{
switch(x)
{
case a-3:System.out.println("0");
case a-2:System.out.println("1");
case a-1:System.out.println("2");
case a:System.out.println("3");
}
}
}
}
我觉得输出结果应该是:0123
可计算机结果是:0123123233
恳请达人解释一下!
class SwitchText {
final static int a = 3; public static void main(String args[]) {
for (int x = 0; x < 4; x++) {
switch (x) {
case a - 3:
System.out.println("0");
break;
case a - 2:
System.out.println("1");
break;
case a - 1:
System.out.println("2");
break;
case a:
System.out.println("3");
break;
}
}
}
}
所以是计算机的输出结果,比如x=0时,a-3等于=0,所以打印0,不过没有break所以还继续执行下面的case所以有打印了123
因为你没有加break;语句在执行完匹配的case后,它会继续向下执行,直到执行完匹配项后面的所有case
final static int a = 3; public static void main(String args[]) {
for (int x = 0; x < 4; x++) {
switch (x) { // x= 2时
case 0: // 不执行
System.out.println("0");
case 1: // 不执行
System.out.println("1");
case 2: // 执行,且其后的语句都会执行 ,case 不会做判断,除非碰到break
System.out.println("2");
case 3:
System.out.println("3");
}
}
}
}
我帮你分析一下:
第一次x=0;
开始swith循环:a-3=0;打印出0;
因为没有break;所以继续执行,此时a-2=1;输出1
同理第一次循环输出23;
第二次x=1;因a-2=1;匹配就输出1,同理接着输出23
第三次x=2;同理输出23
第四次x=3;就输出一个3四次连在一起就是0123123233了,呵呵
我就曾经被break害死过
顶一下吧,呵呵
x = 1:123
x = 2:23
x = 3:2
总感觉在我同学的C++习题上见过
class switchText
{
final static int a=3;
public static void main(String args[])
{
for(int x=0;x <4;x++)
{
switch(x)
{
case a-3:System.out.println("0");//当x=0时,case a-3符合,所以执行System.out.println("0");然后,后面的每一个case都会执行。所以,当x=0时,应该输出0123。以此类推。
case a-2:System.out.println("1");
case a-1:System.out.println("2");
case a:System.out.println("3");
}
}
}
}
final static int a=3;
public static void main(String args[]) {
for(int x=0;x <4;x++) {
switch(x) {
case a-3:
System.out.println("0");
break;
case a-2:
System.out.println("1");
break;
case a-1:
System.out.println("2");
break;
case a:
System.out.println("3");
break;
}
}
}
}
如果不用break就会一直执行下去,直到执行到break或者程序结束
break关键字是跳出循环
提点建议,
好好的看看java基础书籍,因为语句类型就那几种,到现在,每一本基础书都是写的那些东西,选择,循环,顺序,只是从里面可以表达的东西就很多,希望好好的看看书,谢谢,