未知while循环使用情况



在该页面中,用户必须在2个复选框中的一个复选框之间选择5次。所以我写了这个:

        if (box1a.isSelected() == true || box1b.isSelected() == true) {
            if (box2a.isSelected() == true || box2b.isSelected() == true) {
                if (box3a.isSelected() == true || box3b.isSelected() == true) {
                    if (box4a.isSelected() == true || box4b.isSelected() == true) {
                        if (box5a.isSelected() == true || box5b.isSelected() == true) {

                                 with some other things he does when it is true.

        } else {
            new Error("You must select an answer at all the questions");
        }

然后,只有当你没有选中其中一个最前面的复选框时,他才会返回一个错误。很明显,我需要一个while循环,但我不知道怎么做。我知道while循环是如何工作的,但不知道在这种情况下会是什么样子。请帮助

现在我也必须对文本字段做同样的处理,使用你们回答的同样方法是行不通的。有什么建议吗?

if ((box1a.isSelected() || box1b.isSelected()) &&
   (box2a.isSelected() || box2b.isSelected())  &&
   (box3a.isSelected() || box3b.isSelected())  &&
   (box4a.isSelected() || box4b.isSelected())  &&
   (box5a.isSelected() || box5b.isSelected())) 
   {
      //true stuff
   }
   else 
   {
       new Error("You must select an answer at all the questions");
   }

永远不应该不应该用==测试true。这是一种糟糕的风格,最好只使用isSelected() 的返回值

if ((box1a.isSelected() == true || box1b.isSelected() == true) &&
   (box2a.isSelected() == true || box2b.isSelected() == true) &&
   (box3a.isSelected() == true || box3b.isSelected() == true) &&
   (box4a.isSelected() == true || box4b.isSelected() == true) &&
   (box5a.isSelected() == true || box5b.isSelected() == true)) {
      //DO SOMETHING IF TRUE
}
else {
      new Error("You must select an answer at all the questions");
}

无需循环^_^

在这种情况下,为什么不使用单选按钮(选中默认单选按钮(?

一般策略如下:

bool flag = true;
do{
    //search for input
    if (/*the input is valid*/)
        flag = false;
}while (flag);

但是,如果你硬编码了这么多选项,你可能会有错误的设计。试试Jerome C.建议的类似单选按钮的东西。

if(!box1a.isSelected() && !box1b.isSelected()) {
    // You must select an answer at all the questions
}
else if (box1a.isSelected() && box1b.isSelected() && box2a.isSelected() && box2b.isSelected() && box3a.isSelected() && box3b.isSelected() && box4a.isSelected() && box4b.isSelected() && box5a.isSelected() && box5b.isSelected()) {
    // with some other things he does when it is true.
}

这里有几点需要注意。

  1. 避免使用像Error这样的类名,因为它们通常用于真正的java.lang.Error逻辑
  2. 如果您有布尔值,则不需要使用==运算符

不确定为什么需要while循环。如果您认为用户必须"保持循环",而您的条件(所有5个问题都已回答(不满足,那么就没有必要了。事件调度线程(EDT(将继续为您运行"循环"。

另一方面,如果您正在寻找一种紧凑的方法来验证所有复选框,您可以从(假设(javax.swing.JCheckbox box1a更改它们的声明方式;等等转换为固定数组或ArrayList,然后可以使用for循环对其进行迭代。

相关内容

  • 没有找到相关文章

最新更新