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 specificationbreak 突然结束最内层的封闭 switchwhiledofor 控制结构.所以,if/then/else 被简单地忽略了。

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

while(***){break;}

do{break;}while(***)

switch

for , 但在 if.

等语句中不起作用