2012-04-06 11 views
0

私はこのコードから最大限の価値を得る必要がありますが、それは本当にうんざりです。誰でも何か提案がありますか?「ユーザーが入力した最大値」を取得しますか?

import java.util.Scanner; 
public class Test{ 
    public static void main(String args[]) 
    { 
     Scanner scan = new Scanner(System.in); 

     final int sentinel = 0; 
     int number; 
     int maxval = 0; 
     int count = 0; 

     System.out.println ("Enter a number: "); 

     number = scan.nextInt(); 
     while (number != sentinel) 
     { 
      count++; 
      System.out.println("Enter another number"); 
      number = scan.nextInt(); 
      maxval = number; 
     } 

     if (number > maxval) 
     { 
      maxval = number; 
      System.out.println ("The max value is " + maxval); 
     } 
    } 
} 
+0

:比較number > maxvalは、メインループ内でなければならないこと'while'の中で' maxval = number'を削除し、ループの中で条件文を取得します – mshsayem

答えて

1

新しい番号を取得するたびに、maxvalという変数が上書きされます。あなたはこれを試してみてください。この

while (number != sentinel) 
{ 
    count++; 
    System.out.println("Enter another number"); 
    number = scan.nextInt(); 
    if (number > maxval && number != sentinel) //So you don't overwrite it when you get the sentinel character 
     maxval = number; 
} 
System.out.println ("The max value is " + maxval); 
+0

ありがとうございました!間違いなく私のループ構築を改善する必要がある... – jerms246

0

ような何かをしなければならない、それは少し簡単ですし、あなたのコード内の主な問題が修正されています。

Scanner scan = new Scanner(System.in); 

    final int sentinel = 0; 
    int maxval = 0; 
    int number = 0; 

    do { 
     System.out.print("Enter a number: "); 
     number = scan.nextInt(); 
     if (number > maxval) 
      maxval = number; 
    } while (number != sentinel); 

    System.out.println("The max value is " + maxval); 
関連する問題