if inside while while finish "while loop" 内的 break 语句是完全完成还是仅立即完成 "if"?
Does break statement inside if inside while finish "while loop" completely or only immediate "if"?
我有这段代码,它导致了我的错误。代码遍历列表并查看是否有任何用户登录,如果登录,它会计算它是哪个用户 - 第一个或第二个。
当我在 if 中放置 break 语句时,循环只找到第一个用户,对第二个用户没有做任何事情 - 整个循环结束!怎么会这样?我认为 break 只适用于它所在的直接块,即如果 break 在 if{} 中,它会跳出这个 if 并继续执行代码。
break 语句是否也结束外部循环?
do {
if (userlogin){
if(how_many_logged_in == 0){
name1.setVisibility(View.INVISIBLE);
}
else if(how_many_logged_in == 1){
name2.setVisibility(View.INVISIBLE);
break ; //this is confusing - where does it break from?
}
}
} while (condition);
根据 java language specification,break
突然结束最内层的封闭 switch
、while
、do
或 for
控制结构.所以,if/then/else
被简单地忽略了。
如this所说,break用于离开最近的循环,例如:
while(***){break;}
do{break;}while(***)
switch
for
, 但在 if
.
等语句中不起作用
我有这段代码,它导致了我的错误。代码遍历列表并查看是否有任何用户登录,如果登录,它会计算它是哪个用户 - 第一个或第二个。
当我在 if 中放置 break 语句时,循环只找到第一个用户,对第二个用户没有做任何事情 - 整个循环结束!怎么会这样?我认为 break 只适用于它所在的直接块,即如果 break 在 if{} 中,它会跳出这个 if 并继续执行代码。
break 语句是否也结束外部循环?
do {
if (userlogin){
if(how_many_logged_in == 0){
name1.setVisibility(View.INVISIBLE);
}
else if(how_many_logged_in == 1){
name2.setVisibility(View.INVISIBLE);
break ; //this is confusing - where does it break from?
}
}
} while (condition);
根据 java language specification,break
突然结束最内层的封闭 switch
、while
、do
或 for
控制结构.所以,if/then/else
被简单地忽略了。
如this所说,break用于离开最近的循环,例如:
while(***){break;}
do{break;}while(***)
switch
for
, 但在 if
.