| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 548 人关注过本帖
标题:问题多多啊,看书都不行
只看楼主 加入收藏
tcboy20
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-3-9
收藏
 问题点数:0 回复次数:6 
问题多多啊,看书都不行
public class TestSwitch{
public static void main(String srgs[]){
int i=1;
switch(i){
default:System.out.println("a");
case 1:System.out.println("b");
case 2:
case 3:System.out.println("c");break;
case 4:System.out.println("d");}
i=0;
switch(i){
default:System.out.println("a");
case 1:System.out.println("b");
case 2:
case 3:System.out.println("c");break;
case 4:System.out.println("d");
}
}
}


switch从case往下执行.遇break退出..如无break.则从上到下..最后执行default.

这和i=1; i=o;有什么关系啊



搜索更多相关主题的帖子: 看书 
2006-03-22 20:36
tcboy20
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-3-9
收藏
得分:0 
怎么解这类题目?
比如:
switch(m){
case 0:System.out.println("Condition 0");
case 1:System.out.println("Condition 1");
case 2:System.out.println("Condition 2");
case 3:System.out.println("Condition 3");break;
default:System.out.println("Other Condition");
}
当m的值取什么的时候输出"Condition 2"?



答案是0 1 2 怎么算的,看不明白
2006-03-22 21:16
飘飘叶子
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:597
专家分:10
注 册:2005-8-17
收藏
得分:0 

public class Test{
public static void main(String [] args){
final int i = 1;
switch(i){
case 1:
System.out.println(\"1\");
case 2:
System.out.println(\"2\");
break;
case 3:
System.out.println(\"3\");
default:
System.out.println(\"4\");
}
}
}


当i=1时将会打印1,2。
因为当符合条件进入case里面的代码后,只要不遇到break就会一直运行下面的代码,忽略下面的case。

向着软件工程师的目标前进!
2006-03-22 21:54
tcboy20
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-3-9
收藏
得分:0 
为什么
当i=1时;
default:System.out.println("a");放在第一句输出a

default:System.out.println("a");放在case 1后就能输出a


当i=0时

default:System.out.println("a");放在第一句就可以输出a





2006-03-22 22:08
飘飘叶子
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:597
专家分:10
注 册:2005-8-17
收藏
得分:0 
我重新写一个代码拜托你也分析了看一下吧……
以你的例子来说
当i=1时:

int i = 1;
switch(i){
default:System.out.println(\"a\");
case 1:System.out.println(\"b\"); //代码从这里开始执行,怎么可能会输出上面的a?放在下面当然能正常输出
case 2:
case 3:System.out.println(\"c\");break;
case 4:System.out.println(\"d\");}


当i=0时:

i=0;
switch(i){
default:System.out.println(\"a\"); //由于0不属于1~4范围内,所以从这里开始执行,也就会输出a了
case 1:System.out.println(\"b\");
case 2:
case 3:System.out.println(\"c\");break;
case 4:System.out.println(\"d\");
}


btw:一般没有人会把default放在第一句的……

向着软件工程师的目标前进!
2006-03-22 22:21
tcboy20
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-3-9
收藏
得分:0 
//由于0不属于1~4范围内,所以从这里开始执行,也就会输出a了
原来是这个啊,
是值的问题
2006-03-22 22:38
飘飘叶子
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:597
专家分:10
注 册:2005-8-17
收藏
得分:0 
这个代码本来就是匹配值的操作……
意思就是如果值在case里能得到匹配就执行case里的代码,否则就执行default的代码,default是在无法得到匹配的情况下才执行的,所以不会写到第一行……

向着软件工程师的目标前进!
2006-03-22 22:45
快速回复:问题多多啊,看书都不行
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015396 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved