基础问题,高手来指点一下。(20分)

  • 主题发起人 主题发起人 xiaoxiao8372
  • 开始时间 开始时间
X

xiaoxiao8372

Unregistered / Unconfirmed
GUEST, unregistred user!
class A
{
public static void main()
{
private int i = 9;
switch(i)
{
default:
System.out.println("default");
case:0
System.out.println("zero");
break;
case:1
System.out.println("one");
case:2
System.out.println("two");

}
}
打印的结果是
default
zero
可是,为什么啊。。他是怎么运行地,谁来给我讲一下。按我的理解就是直接打印一个default
}
 
首先它根据条件选择从default入口开始运行,运行遇到BREAK语句结束。
如果i=1会输出
one
two
如果不相信你可以运行试试!
 
我知道结果的正确性。程序一开始就应该先执行default,而打印"default",然后就应该跳出这个域了,而使程序结束。。
 
switch语句遇到break语句才会跳出,你在
default:
System.out.println("default");
后加上break;再重新试一试!
 
class Test{
public static void main(String[] args){
int i=9;
String t;
switch(i){
case 0:
t="zero";
System.out.println(t);
break;
case 1:
t="one";
System.out.println(t);
break;
case 2:
t="two";
System.out.println(t);
break;
default: t="default";
System.out.println(t);
}
}
}
 
是遇到break才会跳出域,但是在我写地程序中应该永远也遇不到break;因为i等于9,他不可能等于0啊。。。。
 
你刚刚开始学呀!程序根据i=9这个条件寻找入口条件,如果找到就从入口条件开始执行语句,在他遇到第一个break语句跳出switch语句。如果找不到入口条件就从default开始执行语句,同样是遇到第一个break语句跳出,一般情况是吧default放在最后所以不用加break语句。
 
程序运行结果是
default
 
我是刚开始学所以有些不太清楚。我上边地程序入口就在default开始,可是他碰不到break又如何跳出switch.....
 
你在
default:
System.out.println("default");
后加一个break
 
我还不知道加break;
这就是一道看结果题,我就是不清楚他是怎么运行地。。。
 
我不是把程序给你改好了么。上面
运行
javac Test.java
java Test
 
程序根据i=9找到入口default,开始从default的语句开始执行,执行完System.out.println("default");语句后由于没有遇到break语句,所以它继续往下执行,也就是执行case:0的语句
System.out.println("zero");
执行完 System.out.println("zero");后遇到break语句,然后就跳处switch语句。这样写你应该明白了吧!
 
呵呵,麻烦你了,我查了一下C这回是明白,CASE后面是标号根本就不是什么判断,如无break会一直执行地。。。分我给你加上了
 
接受答案了.
 
后退
顶部