2016-10-09 3 views
0

Следующий код, приведенный ниже, запрашивает у пользователя ввод числа. Затем он предлагает пользователю ввести больше номеров. Когда они выходят из программы, они отображают наибольшее введенное число. Как я могу преобразовать этот код, чтобы задать пол человека, а затем возраст. Таким образом, на выходе программы будет указано, что самый высокий возраст девочки - ____, а самый высокий возраст мальчика - _______? Сейчас его гендерная нейтральность и просто соответствует самому высокому возрасту.Как вставить вложенный петлю в 2 цикла.

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); 
} 

}

ответ

0

Я хотел бы предложить либо помещая другое сообщение showInputDialog внутри каждого цикла или создания, если заявление, чтобы указать пол.

1
  • Вы можете запросить пол в другом методе showInputDialog.
  • Измените showInputDialog от int до коллекции значений, это может быть массив с длиной 2 для хранения наивысшего возраста для пола, это может быть карта, где ключ является полом, предел - это небо
  • Вам нужно будет работать в ваших валидаций:
    • Если вы задаете возраст, не следует, что быть указано, когда вы просите данные?
    • Что произойдет, если пользователь вводит отрицательное число?
    • Примете ли вы возраст 1345 лет?
    • Что делать, если текст пуст, символ отличается от «q»?
0

Вы должны поддерживать две различные переменные, которые будут держать след самого высокого возраста для каждой девочки и мальчик соответственно. В этом случае вам не нужно добавлять никаких дополнительных дополнений. Добавьте код, чтобы попросить пользователя ввести пол (подтвердить данные) и задать возраст. Исходя из пола, делайте отдельный расчет.

while(...) 
{ 
    //Ask for gender and validate 
    //Ask for age and validate 
    switch(gender) 
    { 
     case 'M': 
      //maleHigestAge calculation here 
      break; 
     case 'F': 
      //femaleHigestAge calculation here 
     break; 
    } 
} 

//display maleHigestAge and femaleHigestAge with formated string 

 Смежные вопросы

  • Нет связанных вопросов^_^