如何将嵌套循环插入2个while循环中

时间:2016-10-09 04:15:12

标签: java validation while-loop nested sentinel

以下代码要求用户输入一个数字。然后它会提示用户输入更多数字。当他们退出程序时,他们会显示输入的最大数字。我怎么能转换这个代码来询问一个人的性别然后年龄。所以该计划的结果将表明最高的女孩年龄是____,最高的男孩年龄是_______?现在它的性别中立,只是符合最高年龄。

import javax.swing.JOptionPane;

         public class largestNumb{
public static void main(String[] args) {
    int highestNumber;
    boolean firstNumberEntered = false;

  int firstNumber;

      do {


     String firstNumberInput = JOptionPane.showInputDialog("Enter the           first      number: ");

     try {
        firstNumber = Integer.parseInt(firstNumberInput);
        firstNumberEntered = true;
     }
     catch (NumberFormatException e) {
        JOptionPane.showMessageDialog(null, "Invalid number! Please try again.");

                   firstNumber = 0;
        firstNumberInput = JOptionPane.showInputDialog("Enter the first number: ");
     }
  } while (!firstNumberEntered);

        highestNumber = firstNumber;

        String numberInput = JOptionPane.showInputDialog("Enter another number, or Q to quit");
    while (!numberInput.equalsIgnoreCase("Q")) {
       int number;

        try {
        number = Integer.parseInt(numberInput);
        if (number > highestNumber) {
           highestNumber = number;
        }
     }
                    catch (NumberFormatException e) {
            JOptionPane.showMessageDialog(null, "Invalid number!");
        }
             numberInput = JOptionPane.showInputDialog("Enter another number, or Q to quit");         
    }
  JOptionPane.showMessageDialog(null, "The highest number was: " + highestNumber);
}

}

3 个答案:

答案 0 :(得分:1)

  • 您可以使用其他showInputDialog方法询问性别。
  • showInputDialog从int更改为值集合,它可以是长度为2的数组,用于存储性别的最高年龄,它可以是键是性别的地图,限制是天空
  • 您需要在验证中工作:
    • 如果您要问年龄,在询问数据时是否应该说明这一点?
    • 如果用户输入负数会怎样?
    • 你会接受1345岁的年龄吗?
    • 如果文字为空,与'q'不同的字符怎么办?

答案 1 :(得分:0)

我建议在每个循环中放置另一个showInputDialog消息,或者创建一个if语句来指定性别。

答案 2 :(得分:0)

您需要保留两个不同的变量,分别跟踪每个女孩和男孩的最高年龄。在这种情况下,您无需添加任何其他内容。添加代码以要求用户输入性别(验证数据)并询问年龄。根据性别做单独计算。

<div>
    <md-button ng-click="switchImage(-1)"> Prev Image </md-button>
    <img ng-src="assets/img/{{image}}"/>
    <md-button ng-click="switchImage(1)"> Next Image </md-button>
</div>