繁体   English   中英

JAVA:将替代(||)置于循环中?

[英]JAVA: Putting alternative ( || ) in loop?

我有一个快速的问题。 我想让我的代码更短,我想知道我是否可以在复选框下面以某种方式进入循环。 这部分代码的意义在于,如果选中至少一个复选框,则启用“查找”按钮。 提前感谢您的每一个提示。

    if (checkBoxes[0].isSelected() == true || checkBoxes[1].isSelected() == true
            || checkBoxes[2].isSelected() == true || checkBoxes[3].isSelected() == true || checkBoxes[4].isSelected() == true
            || checkBoxes[5].isSelected() == true || checkBoxes[6].isSelected() == true || checkBoxes[7].isSelected() == true
            || checkBoxes[8].isSelected() == true || checkBoxes[9].isSelected() == true || checkBoxes[10].isSelected() == true
            || checkBoxes[11].isSelected() == true || checkBoxes[12].isSelected() == true || checkBoxes[13].isSelected() == true
            || checkBoxes[14].isSelected() == true || checkBoxes[15].isSelected() == true || checkBoxes[16].isSelected() == true
            || checkBoxes[17].isSelected() == true || checkBoxes[18].isSelected() == true || checkBoxes[19].isSelected() == true
            || checkBoxes[20].isSelected() == true || checkBoxes[21].isSelected() == true) {
        button.setEnabled(true);

当然可以 :

boolean found = false;
for (int i = 0; i < checkBoxes.length && !found; i++) {
    found = checkBoxes[i].isSelected();
}
if (found) {
    button.setEnabled(true);
}

或者你可以避免boolean变量,并在找到第一个选中的复选框时突破循环:

for (int i = 0; i < checkBoxes.length; i++) { // you can also replace this with enhanced
                                              // for loop
    if (checkBoxes[i].isSelected()) {
        button.setEnabled(true);
        break;
    }
}

为什么不使用stream

if (Arrays.stream(checkBoxes).anyMatch(checkbox -> checkbox.isSelected())) {
    button.setEnabled(true);
}

因为你有一个数组,当然你可以使用循环。

这是一个带增强循环的版本:

for (Checkbox checkBox : checkBoxes){
   if (checkBox.isSelected()){
      button.setEnabled(true);
      break;
   }
}

尝试这个:

for(int i=0; i < checkBoxes.length; i++) {
    if(checkBoxes[i].isSelected()) {
        button.setEnabled(true);
        break;
    }
}
Boolean j = false;
for (byte i = 0; i <= 21)
    if (checkBoxes[i].isSelected() == true) {
        j = true;
        break;
        if (j == true) {
            //your code
        }

你使用这个代码很容易

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM