while1. 루프를 사용하여 숫자 합산

키보드에서 숫자를 읽고(사용자가 숫자처럼 보이는 것을 입력하는 한) 그 합계를 화면에 표시하는 프로그램을 작성해 봅시다. 이러한 프로그램의 코드는 다음과 같습니다(메소드 내부의 코드만 표시함 main).

암호 설명
Scanner console = new Scanner(System.in);
int sum = 0;
while (console.hasNextInt())
{
   int x = console.nextInt();
   sum = sum + x;
}
System.out.println(sum); 
Scanner콘솔에서 데이터를 읽을 개체를 만듭니다 .
숫자의 합을 변수에 저장합니다 sum.
콘솔에서 숫자를 입력하는 한 변수

에 다음 숫자를 읽어들입니다 x. 숫자의 합계(변수)에
더합니다 . 계산된 합계를 화면에 표시합니다. xsum


while2. 루프를 사용하여 최대 수 찾기

두 번째 프로그램도 키보드에서 숫자를 읽지만(사용자가 숫자와 같은 것을 입력하는 한) 이제 입력한 숫자 중 가장 큰 숫자를 표시하려고 합니다. 이러한 프로그램의 코드는 다음과 같습니다(메소드 내부의 코드만 표시함 main).

암호 설명
Scanner console = new Scanner(System.in);
int max = 0;
while (console.hasNextInt())
{
   int x = console.nextInt();
   if (x > max)
     max = x;
}
System.out.println(max); 
Scanner콘솔에서 데이터를 읽을 개체를 만듭니다 .
변수 max는 숫자의 최대값을 저장합니다.
콘솔에서 숫자를 입력하는 한 변수

에 다음 숫자를 읽어들입니다 x.
비교 x하고 max. x가 보다 큰 max경우 최대
값을 업데이트합니다.

화면에 최대 수를 표시합니다.

여기에 흥미로운 점이 있습니다. 키보드에서 입력한 모든 숫자가 음수이면 프로그램에 가 표시됩니다 0. 어느 것이 잘못되었습니다.

결과적으로 max 변수의 초기값은 가능한 한 작아야 합니다.

옵션 1:

-2,000,000,000(마이너스 20억) 로 설정할 수 있습니다 . 이것은 나쁜 시작이 아닙니다.

옵션 2:

가능한 가장 작은 int값을 할당합니다. 이를 위한 특별한 상수가 있습니다: Integer.MIN_VALUE;

옵션 3:

더 좋은 방법은 max입력한 첫 번째 숫자로 초기화하는 것입니다. 이것이 최선의 선택입니다. 그러나 이것은 작업 조건에서 사용자가 최소한 하나의 숫자를 입력해야 하는 경우에만 작동합니다.