1

一連の数値の平均を計算する簡単なプログラムを作成しています。を使って数値を取得するので、ループを条件としてScanner使用しています。ただし、ループは無限です。while.hasNext()

入力に「ストップ」などの特定の単語を書かずに、そこから抜け出すことは可能ですか?

public class main {

    public static void main(String[] args){

        Scanner Input = new Scanner(System.in);
        int count = 0;
        int temp;
        int sum = 0;

        while(Input.hasNextInt()){

           count++;           

           temp = Input.nextInt();
           sum += temp;
           System.out.println(temp);
           System.out.println(count);           

        } // End of while

        double average = sum / count;
        System.out.println("The average is: " + average);

    } // End of method main

}
4

5 に答える 5

1

breakwhile ループを停止するには、キーワードを使用するだけです。

while(Input.hasNextInt()){

    count++;           

    temp = Input.nextInt();
    sum += temp;
    System.out.println(temp);
    System.out.println(count); 
    break;          

} // End of while
于 2012-10-09T19:06:33.380 に答える
0

問題は、Scanner常にから整数を期待することSystem.inです。次のようなセンティナル値を使用して、ループから抜け出すことができます-1

if (temp == -1) {
   break;
}
于 2012-10-09T19:10:12.187 に答える
0

そう、魔法のキーワードはbreak;

于 2012-10-09T19:05:33.153 に答える
0

声明はbreak;訴えられる可能性があります...まあ...反復から抜け出します。forそして、反復とは、たとえば、あまりにも抜け出すことができることを意味します。

いつ反復を中断したいかを定義してから、次のようにする必要があります。

while(Input.hasNextInt(Input)){
   if(condition())
       break;

   count++;           

   temp = Input.nextInt();
   sum += temp;
   System.out.println(temp);
   System.out.println(count);           

 }

それ以外の場合は、次のように、反復を続行するかどうかを定義する補助メソッドを作成できます。

private boolean keepIterating(Scanner in) {
    boolean someOtherCondition = //define your value here that must evaluate to false
                                 //when you want to stop looping
    return Input.hasNextInt() && someOtherCondition;
}

で呼び出す必要があるメソッドwhile:

while(keepIterating()){

   count++;           

   temp = Input.nextInt();
   sum += temp;
   System.out.println(temp);
   System.out.println(count);           

}
于 2012-10-09T19:05:56.463 に答える
-2
public static void main(String[] args){

    Scanner Input = new Scanner(System.in);

    System.out.println("Enter # to end ");
    while( !Input.hasNextInt("#"))// return true if u input value = its argument
    {
        //ur code
    }//end while
于 2013-07-12T16:22:07.647 に答える