Java - 具有两个条件的 For 循环无法按预期工作

标签 java exception for-loop conditional-statements

我编写了两个用于填充 GridBagLayout 的 for 循环。不知何故,第二个条件没有运行,因此我得到一个异常。

基本上程序的作用是:它从 MySQL 服务器获取数据并将其列在 GridBagLayout 中。因此,我使用 rs.lenghtrs.getRow() 获取行的长度。然后我将它复制到 lenghtCounter 用于内部 for 循环(使用 x 变量)。内部 for 循环应在 3 个周期后执行,或者如果 lenghtCounter 等于 0。我在控制台中看到计数器工作并按预期下降到 0,但 for 循环没有中断。相反,它继续并给了我一个异常(exception)。

代码如下:

        try {
            ResultSet rs = MySQL.getStatement().executeQuery(
                    "select * from obj_house");
            rs.last();
            int lenghtCounter = rs.getRow();
            int lenght = lenghtCounter;
            rs.first();
            System.out.println(lenghtCounter + " " + (lenght / 3));

            for (int y = 0; y <= (lenght / 3); y++) {
                for (int x = 0; x < 3 || lenghtCounter==0; x++) {
                    System.out.println("ID " + lenghtCounter);

                    JButton street = new JButton("Strasse: " + rs.getString(5));

                    gbcOut.gridx = x;
                    gbcOut.gridy = y;
                    panelBottom.add(street, gbcOut);

                    System.out.println("X: " + x);
                    System.out.println("Y: " + y);
                    rs.next();
                    lenghtCounter--;
                    System.out.println("lenght: " + lenghtCounter);
                }
            }
        } catch (SQLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

最佳答案

尝试测试:

x < 3 && lenghtCounter>0

关于Java - 具有两个条件的 For 循环无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19660152/

相关文章:

C++ Loop 最多运行一次

java - 给定一个无限序列,将其分成多个区间,并返回一个新的无限序列,每个区间的平均值

JavaFX 从文件读取抛出 "InvocationTargetException"?

c++ - 嵌套for循环解决方案

Eclipse 未处理的事件循环异常,不再处理 Windows 7

java - 是否有任何理由将异常的原因设置为自身?

for-loop - awk for 循环不搜索所有字段

java - 在 Java 中调用 wait() 时,所有 Swing 框架都得到 "frozen"

java - 主机名错误异常

Java UDP 传输与 Go back N