摆脱Java中的"for循环"

luk*_*nos 1 java

当事件发生时,我想从"for循环"中退出.例如,我的代码中有一部分:

for (ScanResult scanResult : listeScan) {
    if(sampleposition[position]==0){ 
        change=true;
        while(i < position && change==true){ 
            if(macAdress[i].equals(scanResult.BSSID)){ 
                change = false;
            }
            i++;
        }
        i=0;
        if(change == true && scanResult.level >= -80){ 
            valueSSID[position] = scanResult.level;
            macAdress[position] = scanResult.BSSID;
            sSID[position] = scanResult.SSID;
            if(valueSSID[position]!=0){sampleposition[position]++;}
          //exit here
        }
    }
    else{
        if(macAdress[position].equals(scanResult.BSSID) && sampleposition[position]<=totalsample){addlevel=scanResult.level;} else {addlevel=0;}
        valueSSID[position] = valueSSID[position] + addlevel;
            if(addlevel!=0){sampleposition[position]++;}
          //exit here

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

实际上,我想停止循环,其中有评论"退出这里".

拜托,你能告诉我怎么办?对不起我的英语不好...

小智 10

break;
Run Code Online (Sandbox Code Playgroud)

这完全退出for循环.

continue;
Run Code Online (Sandbox Code Playgroud)

这将继续循环的下一次迭代.

  • 如果不需要其余的方法逻辑,另一种可能性是使用`return`. (2认同)

Tro*_*omB 5

您正在寻找break关键字,这将立即结束循环:

    for (ScanResult scanResult : listeScan) {
    if(sampleposition[position]==0){ 
        change=true;
        while(i < position && change==true){ 
            if(macAdress[i].equals(scanResult.BSSID)){ 
                change = false;
            }
            i++;
        }
        i=0;
        if(change == true && scanResult.level >= -80){ 
            valueSSID[position] = scanResult.level;
            macAdress[position] = scanResult.BSSID;
            sSID[position] = scanResult.SSID;
            if(valueSSID[position]!=0){sampleposition[position]++;}
            break;
        }
    }
    else{
        if(macAdress[position].equals(scanResult.BSSID) && sampleposition[position]<=totalsample){addlevel=scanResult.level;} else {addlevel=0;}
        valueSSID[position] = valueSSID[position] + addlevel;
            if(addlevel!=0){sampleposition[position]++;}
             break;

        }
    }
}
Run Code Online (Sandbox Code Playgroud)