2016-10-09 8 views
0

次のコードは、ユーザーに番号を入力するよう求めています。次に、ユーザーにさらに数字を入力するよう促します。プログラムを終了すると、入力された最高の数字が表示されます。どのようにしてこのコードを変換して、年齢の人の性別を尋ねることができますか?したがって、プログラムの出力には、最高の少年の年齢は____であり、最高の少年の年齢は______ですと書かれていますか?今は性別は中立で、最高の年齢にちょうど合致しています。2つのwhileループにネストループを挿入する方法

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

Iは、各ループ内の別のshowInputDialogメッセージを確定または性別を指定するif文の作成のいずれかを示唆しているであろう。

1
  • 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 
関連する問題