首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

Java中使用switch语句的话是否必须加break?该怎么处理

2012-03-12 
Java中使用switch语句的话是否必须加break?Java中使用switch语句的话是否必须加break?[解决办法]你可以不

Java中使用switch语句的话是否必须加break?
Java中使用switch语句的话是否必须加break?

[解决办法]
你可以不加 但如果你满足条件的话 没有 break 会继续往下做..
[解决办法]
return...也行,呵呵
[解决办法]
为了安全还是要加
[解决办法]
看具体的需求,一般是要加的。
[解决办法]
可以不加,看你想做什么
[解决办法]
具体情况具体使用 不能一概而论的
[解决办法]
不必须
[解决办法]
还是要加,不然程序会往下走的.
[解决办法]
不加的话,会连续走,每个分枝都要加,除非是连续的分枝做相同的操作.
[解决办法]
不是必须的 它会继续往下走的
[解决办法]
不一定
[解决办法]
不必要,看你的需要了。
当你需要它break的时候,就得+break;

[解决办法]
我感觉最好加上,不加的话,有可能会出现意想不到的错误
[解决办法]
在这一点上跟c差不多
为了程序的逻辑性还是建议加上break
[解决办法]
从规范性来讲,是必须要加的,包括defualt!
[解决办法]
举个例子:
switch(a){
case 1:x=1;
case 2:x=2;
case 3:x=3;
default:x=4;
}
假设a==2,那么将执行x=2;x=3;x=4;
也就是说,一旦遇到了满足条件的分支,那么将认为下面的分枝都满足条件而不再判断,直接执行,显然这与一般我们想要的逻辑是不相符的,所以通常我们都加上break;当然如果你就是需要这样的逻辑,就可以不加了,呵呵。
加default则是为了严谨,为了当条件都不满足时做一个操作,保证判断到了每一种情况,避免因某个条件没考虑到而出现bug时不好调试。
[解决办法]
楼上说的很仔细了 哪个高手在给个例子~~
[解决办法]
(以下是个人意见)

我想要看你的条件了,如满足条件会自动跳出的,如不满足会形成死循环的.也可用return
我是刚刚学习java的所以有不对之处请谅解
[解决办法]
这个吗?
要根据不同的情况而定,一般情况还是加上的好.
[解决办法]

不加的话,会连续走,每个分枝都要加,除非是连续的分枝做相同的操作.


[解决办法]
同意楼上的说法,一般都加的,为了程序运行的正确性。
[解决办法]
具体情况具体具体分析
[解决办法]
不是必须,但是不加的话,第一个条件如果满足,后面的全部都执行
[解决办法]
最好还是加把
[解决办法]
如果你要做变量累加,一定不要加
[解决办法]
没有特殊指明,加上更保险一些。
[解决办法]
同意楼上的说法,一般都加的,为了程序运行的正确性。
[解决办法]
最好加


[解决办法]
我也认为这个必须得加
[解决办法]
必须加
[解决办法]
switch 语句
请参阅
break 语句 | if...else 语句
要求
版本 3
当指定的表达式的值与某个标签匹配时,即执行相应的一个或多个语句。

switch (expression) {
case label :
statementlist
case label :
statementlist
...
default :
statementlist
}
参数
expression
要求值的表达式。
label
根据 expression 来匹配的标识符。如果 label === expression,则立即从冒号后的 statementlist 处开始执行,直到遇到一个可选的 break 语句,或到达 switch 语句的最后。
statementlist
要被执行的一个或多个语句。
说明
使用 default 子句来提供一个语句,该语句只在没有任何一个标签值与 expression 相匹配时才被执行。它可以出现在 switch 代码块内的任何地方。

可以指定零或多个 label 块。如果没有 label 和 expression 的值匹配,并且没有提供 default 情况,则不执行任何语句。

通过 switch 语句执行流程如下:

求 expression 的值并依次序查看 label,直到找到一个匹配。
如果 label 的值等于 expression 的值,则执行它相应的 statementlist。
继续执行,直到遇到一个 break 语句,或者 switch 语句结束。这意味着如果没有使用一个 break 语句,则多个 label 块被执行。
如果没有 label 等于 expression 的值,则跳转到 default 情况。如果没有 default 情况,则跳转到最后一步。
继续执行紧接 switch 代码块末尾的语句。
示例
下面示例测试一个对象的类型:

function MyObject() {
...}

switch (object.constructor){
case Date:
...
case Number:
...
case String:
...
case MyObject:
...
default:
...
}


break 语句
请参阅
continue 语句 | do...while 语句 | for 语句 | for...in 语句 | Labeled 语句 | while 语句
要求
版本 1
中断当前循环,或和 label 一起使用,中断相关联的语句。

break [label];
可选的 label 参数指定断点处语句的标签。

说明
通常在 switch 语句和 while、for、for...in、或 do...while 循环中使用 break 语句。最一般的是在 switch 语句中使用 label 参数,但它可在任何语句中使用,无论是简单语句还是复合语句。

执行 break 语句会退出当前循环或语句,并开始脚本执行紧接着的语句。

示例
下面的示例说明了 break 语句的用法。

function BreakTest(breakpoint){
var i = 0;
while (i < 100)
{
if (i == breakpoint)
break;
i++;
}
return(i);
}

[解决办法]
少数情况会引起错误,为了良好的编程习惯。请加上BREAK。
[解决办法]
最好加上
[解决办法]
switch是一个循环程序,可以是镶嵌在一个method里面的
public String toString(){
switch(){}
},
return是直接跳出一个method,所以一执行到return是直这个方法已经执行结束,是否有返回值
得看return后面有没有带什么东西了。
[解决办法]
这个程序就没有加,不过进行一次选择后就跳出了,感觉很神奇

不过为什么那个程序上面不加也没事呢?

======================================
return 具有强制跳出的功能,仅仅在这种情况下不能加。因为 return 只能放在一个块的最后一行,也就是说一个块中的 return 后面不能再加任何语句。由于 break 具有跳出分支的功能,所以在 return 之前也不能加,因为 return 是必须要执行的语句。

热点排行