如果在里面完成“while循环”或者只是立即“if”的话,在里面打破语句?

时间:2015-11-19 09:34:26

标签: android if-statement break do-while boolean-logic

我有这个代码,这导致我错误。代码遍历列表并查看是否有任何用户登录,如果已登录,则计算它是哪个用户 - 第一个或第二个。

当我将break语句放入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);

2 个答案:

答案 0 :(得分:5)

根据java language specificationbreak突然终止最内层的switchwhiledofor控件结构。因此,if/then/else被忽略了。

答案 1 :(得分:1)

正如this所说, break 用于离开最近的循环,例如:

while(***){break;}

do{break;}while(***)

switch

for ,但在if等语句中不起作用。