2016-04-02 12 views
0

ユーザーが開始番号と終了番号を入力するプログラムを作成しようとしています。プログラムは開始と終了を含めてすべての値を出力し、すべての値をメッセージダイアログ画面に表示します。しかし、すべての数字を1つのメッセージダイアログに表示させることはできません。それぞれの数字に対して新しい数値を作成します。whileループで数値を表示する

public static void main(String[] args) { 

    int start; 
    int end; 
    int result; 
    start = Integer.parseInt(JOptionPane.showInputDialog("Please enter a starting integer ")); 
    end = Integer.parseInt(JOptionPane.showInputDialog("Please enter an ending integer ")); 
    while (start <= end) { 

     result = start; 
     start++; 

     JOptionPane.showMessageDialog(null,result); 
    } 
} 
+0

はここStringBuilderバージョンです。ループで各数値を文字列に追加し、それが終了したら文字列全体をダイアログに表示します。 –

+0

ありがとうございました!私はそれをどうやって行くのですか?各数値に変数を割り当て、最後にすべての変数を出力する必要がありますか? @AdamLiss –

答えて

2

ループは、繰り返しごとにshowMessageDialog()を呼び出しています。ループで各数値を文字列に追加し、それが終了したら文字列全体をダイアログに表示します。それは、より効率的だから

public static void main(String[] args) { 

    int start; 
    int end; 
    int result; 

    start = Integer.parseInt(JOptionPane.showInputDialog(
     "Please enter a starting integer ")); 
    end = Integer.parseInt(JOptionPane.showInputDialog(
     "Please enter an ending integer ")); 

    String msg = ""; 
    while (start <= end) { 
    msg = msg + " " + start; 
    start++; 
    } 

    JOptionPane.showMessageDialog(null, msg); 
} 

は、生産コードでは、あなたは、むしろ、ループの各反復の間に新しい文字列を生成するよりも、それにStringBuilderappend()各番号を使用すると思います。しかし、実装の詳細に気をそらすのではなく、アルゴリズムに集中することにしました。あなたは() `ループの各反復中に` showMessageDialogを呼んでいるので、だ

StringBuilder msg = new StringBuilder(); 
    while (start <= end) { 
    msg.append(start).append(" "); 
    start++; 
    } 

    JOptionPane.showMessageDialog(null, msg.toString()); 
+0

String msgを追加しようとしました。「ローカル変数msgが初期化されていない可能性があります」というエラーが表示されます。 –

+0

Stringを初期化する必要があります。更新しました。 –

関連する問題