2016-05-10 8 views
1

私は、ユーザーに5桁の数字を入力するように求めているプログラムを作った後、プログラムはそれらの数字の合計を探しています。 私はプログラムが一度計算した後に何度も何度も何度も尋ねるようにする方法を知りたいのですが。 私は、彼自身が終了したいときまで、ユーザーが再びnを試して欲しいと思います。プログラムの実行を続ける

public static void main(String[] args) { 

    int num=1362; 
    int i,t=0; 
    int store; 

    for(i=0; i<=5; i++) 
    { 

     store=num%10; 
     num=num/10; 
     t=t+store; 

    } 

    System.out.println("The sum of the digits of 1362 is " +t); 
} 
+0

ユーザーはどのように実行を停止しますか?キーワードを使って? – FedeWar

+2

ループを使用します。いくつかの擬似コードを書いて紙に書いてみてから、そのためのJavaコードを書こうとしてください。あなたの試行を投稿すると、あなたの間違いを訂正しようとします。 – Pshemo

+0

do-whileループを試してみてください。 1つのkeyworkdを終了し、他の1つを続行して、ユーザーに彼がxを押すことをやめたい場合はxを押すことをやめるかどうかを尋ねる(例えば) –

答えて

1

ユーザが番号ではないものを書き込むまで、実行は続行されます。

public static void main(String[] args) { 
    int num=1362; 
    int i,t=0; 
    int store; 
    Scanner in = new Scanner(System.in); 
    while(in.hasNextInt()) 
    { 
     t = 0; 
     store = 0; 
     num = in.nextInt(); 
     for(i=0; i<=5; i++) 
     { 
      store=num%10; 
      num=num/10; 
      t=t+store; 
     } 
     System.out.println("The sum of the digits is " +t); 
    } 
    in.close(); 
} 
+0

このプログラムは終了しているので、効果はありませんが、一般的に 'System.in'に結びついた' Scanner 'を閉じるのは良い考えではありません。なぜ入力が読み込まれなくなったのかについての複数の質問がここにあり、stdinでスキャナを閉じるまで追跡します。 – KevinO

1

私のソリューション: ユーザーは、合計が計算され、彼は(例外処理なし)それを繰り返すしたい場合、ユーザが要求され、その後、5つの数字を入力します。

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 

String repeat = ""; 
do { 
    try { 
     int[] digits = new int[5]; 
     System.out.println("Enter 5 digits: "); 

     for (int i = 0; i < digits.length; i++) { 
      System.out.printf("Digit %d:", i + 1); 
      String input = br.readLine(); 
      digits[i] = Integer.parseInt(input); 
     } 

     int sum = 0; 
     StringBuilder sb = new StringBuilder(); 
     for (int i = 0; i < digits.length; i++) { 
      sum += digits[i]; 
      sb.append(digits[i]); 
     } 

     System.out.printf("The sum of the digits of %s is %d.", sb.toString(), sum); 
     System.out.println("Repeat? (y/n)"); 
     repeat = br.readLine(); 

    } catch (NumberFormatException e) { 
     // TODO: handle wrong user input 
    } catch (IOException e) { 
     // TODO: handle io exception 
    } 
} while (repeat.equals("y")); 

try { 
    br.close(); 
} catch (IOException e) { 
    // TODO: handle IOException 
} 
関連する問題