【问题标题】:How do I stop this loop?如何停止这个循环?
【发布时间】:2014-12-08 05:36:13
【问题描述】:

如果我在确认对话框中按“否”,如何停止这个无限循环?

        int loop=0;
        do
        {
            System.out.println("Select your food. 1");
            int f=scan.nextInt();
            if(f==1)
            {
                System.out.println("\nHow many tenderloin do you like? ");
                ps=scan.nextInt();
                pst=ps*55;
            }
            System.out.println("Select your drinks. 1");
            int d=scan.nextInt();
            if(d==1)
            {
                System.out.println("\nHow many filtered water do you want? ");
                fw=scan.nextInt();
                fwt=fw*16;
            }
            int buttonClicked=JOptionPane.showConfirmDialog(null, "Do You Want To Order Again?","Confirm",JOptionPane.YES_NO_OPTION);
        }
        while(JOptionPane.YES_NO_OPTION!=done);
        loop++;
            System.out.println("TOTAL: ");
    }
}

我无法理解逻辑。

【问题讨论】:

  • JOptionPane.NO_OPTION != buttonClicked?
  • 这似乎是命令行输入和 GUI 输入的奇怪混合。我建议您选择其中一种。
  • 使用中断;终止循环的语句。
  • 我同意这里的 MadP,你为什么在循环之外使用loop++

标签: java swing loops


【解决方案1】:

buttonClicked 的定义移到循环之外。并针对值JOptionPane.YES_OPTION 进行测试。类似的,

int buttonClicked;
do
{
  // ...
  buttonClicked = JOptionPane.showConfirmDialog(null, 
          "Do You Want To Order Again?","Confirm",JOptionPane.YES_NO_OPTION);
} while(buttonClicked == JOptionPane.YES_OPTION);

【讨论】:

    【解决方案2】:

    将此行 while(JOptionPane.YES_NO_OPTION!=done); 更改为 while(JOptionPane.NO_OPTION!=buttonClicked);

    【讨论】:

      猜你喜欢
      • 2016-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-10
      • 2015-09-13
      • 2019-03-05
      • 2022-11-29
      • 2018-05-13
      相关资源
      最近更新 更多