java - 使用 JOptionPane 时如何跳出 for 循环?

标签 java for-loop joptionpane break

我有一个巨大的问题,我一直在努力解决,但我一生都无法解决这个问题。根据我目前收集的信息,当我使用 JOptionPanes 时,我无法退出 for 循环,因为由于某种原因它永远不会到达它,即使代码就在下面。

我的代码的目标是迭代 .CSV 文件,用户将输入一系列输入,最值得注意的是,我正在检查重复项,如果找到重复项,那么我将继续显示JOptionPane.showMessageDialog,并在消息显示后中断 for 循环。

但是,我的消息对话框一直循环并且不会再继续,所以我一直坚持我做错的事情。

这是我的代码:

JOptionPane.showMessageDialog(null, myPanel, "Edit Fruit", JOptionPane.INFORMATION_MESSAGE);

        for (row = 0; row < myEntries.size(); row++)
        {
            for (column = 0; column < myEntries.get(row).length; column++)
            {
                //If serial exists
                if (myEntries.get(row)[column].trim().equals(newSerial.getText()))
                {
                    //break loop
                    JOptionPane.showMessageDialog(null, "Serial already exists!");
                    break;
                //If the serial does not exist, write this new line to the end of the file        
                }else if (!(myEntries.get(row)[column].trim().equals(newSerial.getText())))
                {
                    System.out.println(row);
                    myEntries.add(new String[] {newSerial.getText(), dateFormat.format(newDate), newLocation.getText(), 
                    "",newAllocation, newCondition, newType.getText(), newComments.getText()});
                }

            }

如果我的文档包含“6”,并且我搜索它,则此代码将出于某种原因迭代两个 if 语句,并且不会中断。

意味着,我的 for 循环将迭代我的文本文件,直到它从用户输入中找到完全匹配的内容,如果是,则中断。如果未找到重复项,则将新行代码附加到文件末尾。

它只是不起作用,我不知道从这里去哪里,所以我希望这里有人可以提供帮助。

如果您需要更多信息,请告诉我,以便我提供并解决此问题。

谢谢。

最佳答案

如果您打算打破第一个循环,您可以使用 labels

OUTER: for (row = 0; row < myEntries.size(); row++) {
    for (column = 0; column < myEntries.get(row).length; column++) {
        // If serial exists
        if (myEntries.get(row)[column].trim().equals(newSerial.getText())) {
            // break loop
            OptionPane.showMessageDialog(null, "Serial already exists!");
            break OUTER;
        // If the serial does not exist, write this new line to the end of the file
        } else if (!(myEntries.get(row)[column].trim().equals(newSerial.getText()))) {
            System.out.println(row);
            myEntries.add(new String[] { newSerial.getText(), dateFormat.format(newDate), newLocation.getText(), "", newAllocation, newCondition, newType.getText(), newComments.getText() });
        }

    }
}

关于java - 使用 JOptionPane 时如何跳出 for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40926344/

相关文章:

java - Android ClassCastException 与 TreeMap 比较

shell - awk 和带有多个变量的 for 循环

Matlab FOR 循环迭代时间增加

python - 嵌套列表循环

java - Joptionpane 未正确输出存储的值。

java - JSpinner 在 JOptionPane 中占据整个宽度

java - 我可以以非模态方式使用 Java JOptionPane 吗?

java - 如何使用 UCanAccess 更改表

java - 如何在 Java 中存储数据而不需要额外的软件?

java - 我可以使用 iText 重置忘记的所有者密码吗?