1

当事件发生时,我想摆脱“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

        }
    }
}

实际上,我想停止有“exit here”评论的循环。

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

4

4 回答 4

10
break;

这完全退出了 for 循环。

continue;

这继续到循环的下一次迭代。

于 2013-07-24T14:21:47.017 回答
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;

        }
    }
}
于 2013-07-24T14:21:15.163 回答
1

只需使用关键字

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;

    }
}
}
于 2013-07-24T14:32:21.153 回答
0

利用:

break;

请参阅以下链接以获取更多信息。

1)控制流 - 维基

2)JAVA中的“Break”和“Continue”

希望他们会有所帮助。

于 2013-07-24T14:42:47.313 回答