[Java] Scanner - 반복 예제

코드 속의 "진돌"·2024년 1월 1일
0
post-thumbnail

우리가 지금까지 개발한 프로그램들은 단 한 번의 결과 출력 후 종료되는 일회성 프로그램이었다.

실제 프로그램들은 이렇게 한 번의 결과만 출력하고 종료되지 않는다. 한 번 실행하면 사용자가 프로그램을 종료할 때 까지 반복해서 실행된다.

이제부터는 사용자의 입력을 지속해서 받아들이고, 반복해서 동작하는 프로그램을 개발해보자.

Scanner + 반복문 함께 사용

✅ Scanner 반복 예제 1


🔔 사용자가 입력한 문자열을 그대로 출력하는 예제를 만들어보자.

  • exit라는 문자가 입력되면 프로그램을 종료한다.
  • 프로그램은 반복해서 실행된다.

✏️ ScannerWhile1

package scanner;

import java.util.Scanner;

public class ScannerWhile1 {

  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    while (true) {
      System.out.print("문자열을 입력하세요(exit : 종료) : ");
      String str = scanner.nextLine();

      if (str.equals("exit")) {
        System.out.println("프로그램을 종료합니다.");
        break;
      }
      System.out.println("입력한 문자열 : " + str);
    }
  }
}

✏️ 실행 결과

while (true) : 중간에 break문을 만나기 전까지 무한 반복한다.

if (str.equals("exit")) {
	System.out.println("프로그램을 종료합니다.");
	break;
}

입력 받은 문자가 “exit”이면 “프로그램을 종료합니다.”를 출력하고 break문을 통해서 while문을 빠져나간다.

✅ Scanner 반복 예제 2


🔔 첫 번째 숫자와 두 번째 숫자를 더해서 출력하는 프로그램을 개발하자.

  • 첫 번째 숫자와 두 번째 숫자 모두 0을 입력하면 프로그램을 종료한다.
  • 프로그램은 반복해서 실행된다.

✏️ ScannerWhile2

package scanner;

import java.util.Scanner;

public class ScannerWhile2 {

  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    System.out.println("첫 번째 숫자와 두 번째 숫자 모두 0을 입력하면 프로그램을 종료합니다.");

    while (true) {
      System.out.print("첫 번째 숫자를 입력하세요 : ");
      int num1 = scanner.nextInt();

      System.out.print("두 번째 숫자를 입력하세요 : ");
      int num2 = scanner.nextInt();

      if (num1 == 0 && num2 == 0) {
        System.out.println("프로그램 종료.");
        break;
      }

      int sum = num1 + num2;
      System.out.println("두 숫자의 합 : " + sum);
    }
  }
}

✏️ 실행 결과

✏️ 종료 부분

if (num1 == 0 && num2 == 0) {
	System.out.println("프로그램 종료");
	break;
}

(num1 == 0 && num2 == 0)

  • 입력 받은 num1, num2 둘 다 함께 0일 때 “프로그램 종료”를 출력하고 break를 통해 while문을 빠져나간다.
  • 비교 연산자를 사용했다. true && truetrue이다. 따라서 두 조건이 모두 참이어야 if문의 코드 블럭이 실행된다.

✅ Scanner 반복 예제 3


🔔 사용자 입력을 받아 그 합계를 계산하는 프로그램을 작성해야 한다.

  • 사용자는 한 번에 한 개의 정수를 입력할 수 있다.
  • 사용자가 0을 입력하면 프로그램은 종료된다. 이 때, 프로그램이 종료될 때까지 사용자가 입력한 모든 정수의 합을 출력해야 한다.

✏️ ScannerWhile3

package scanner;

import java.util.Scanner;

public class ScannerWhile3 {

  public static void main(String[] args) {
    Scanner input = new Scanner(System.in);

    int sum = 0;

    while (true) {
      System.out.print("정수를 입력하세요 (0을 입력하면 종료) : ");
      int number = input.nextInt();

      if (number == 0) {
        break;
      }

      sum += number;
    }
    System.out.println("입력한 모든 정수의 합 : " + sum);
  }
}

✏️ 실행 결과

  • int sum : 이곳에 사용자가 입력한 값을 누적한다.
  • sum += number : 사용자가 입력한 number값을 sum에 누적해서 더한다.
    • +=을 사용했으므로 다음 코드와 같다. → sum = sum + number
profile
매일 성장하는 주니어 개발자의 기록📝

0개의 댓글