0

我是一个java初学者,我对以下程序的困惑是,为什么它分配值,我从键盘输入while( in.hasNext() )变量total,并处理total = in.intNext()while条件的值?

混乱

  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()

因为我寻找hasNext()方法,只有在有值时才返回True 。

完成程序

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 回答