0

私はJavaの初心者ですが、次のプログラムに関する混乱は、なぜそれが値を割り当てるのか、キーボードから変数に入力しwhile( in.hasNext() )totalwhiletotal = in.intNext()条件の値を処理するのですか?

錯乱

  System.out.print("Enter an Integer value or ctrl+z to terminate: ");
  while ( in.hasNext()  ) // Check for New Vlaue 
   {    
    System.out.print("Enter an Integer value or ctrl+z to terminate: ");
    total += in.nextInt();  // Take input for Count
    count++;
   }

私の混乱は、の条件チェックですwhile loop。これは通常、最初に条件をチェックしてからステートメントに進みますが、このプログラムでは、に整数値を入力するwhile( in.hasNext() )と、条件が真になるだけでなく、その値がに割り当てられます。変数なので、total私の質問、

で私から別の値を取得する代わりに、なぜそれが値を割り当てるのtotal = in.nextInt()ですか?

メソッドを探したので、値がある場合にのみTruehasNext()を返します。

完全なプログラム

import java.util.Scanner;

class Practice
{
 public static void main( String[] args )
 {
  int count=0; 
  int total = 0;
  Scanner in = new Scanner(System.in);

  System.out.print("Enter an Integer value or ctrl+z to terminate: ");
  while ( in.hasNext()  ) // Check for New Vlaue 
   {    
    System.out.print("Enter an Integer value or ctrl+z to terminate: ");
    total += in.nextInt();  // Take input for Count
    count++;
   }
  System.out.printf("\nTatal values are: %d\nToatl of count is : %d",count,total);
 } // end main
} // end class Practice
4

1 に答える 1

1

キーボードからの値はwhile( in.hasNext() )行では読み取られませんが、 count += in.nextInt();ステートメントで読み取られます

于 2012-10-03T10:18:11.647 に答える