우리가 지금까지 개발한 프로그램들은 단 한 번의 결과 출력 후 종료되는 일회성 프로그램이었다.
실제 프로그램들은 이렇게 한 번의 결과만 출력하고 종료되지 않는다. 한 번 실행하면 사용자가 프로그램을 종료할 때 까지 반복해서 실행된다.
이제부터는 사용자의 입력을 지속해서 받아들이고, 반복해서 동작하는 프로그램을 개발해보자.
Scanner
+ 반복문 함께 사용
🔔 사용자가 입력한 문자열을 그대로 출력하는 예제를 만들어보자.
exit
라는 문자가 입력되면 프로그램을 종료한다.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
문을 빠져나간다.
🔔 첫 번째 숫자와 두 번째 숫자를 더해서 출력하는 프로그램을 개발하자.
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 && true
→ true
이다. 따라서 두 조건이 모두 참이어야 if
문의 코드 블럭이 실행된다.🔔 사용자 입력을 받아 그 합계를 계산하는 프로그램을 작성해야 한다.
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