
지금까지 변수, 연산자, 조건문, 반복문을 배웠다.
이제는 단순히 출력만 하는 프로그램이 아니라, 사용자로부터 입력을 받아 처리하는 프로그램을 만들어보자.
Java에서는 System.out으로 출력했듯이, System.in을 통해 입력을 받을 수 있다.
하지만 System.in만 단독으로 사용하면 처리 과정이 복잡하다.
그래서 Java는 입력을 간단하게 다룰 수 있도록 Scanner 클래스를 제공한다.
import java.util.Scanner;
public class Scanner1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("문자열을 입력하세요: ");
String str = scanner.nextLine(); // 문자열 입력
System.out.println("입력한 문자열: " + str);
System.out.print("정수를 입력하세요: ");
int intValue = scanner.nextInt(); // 정수 입력
System.out.println("입력한 정수: " + intValue);
System.out.print("실수를 입력하세요: ");
double doubleValue = scanner.nextDouble(); // 실수 입력
System.out.println("입력한 실수: " + doubleValue);
}
}
nextLine() → 문자열 입력 nextInt() → 정수 입력 nextDouble() → 실수 입력 타입이 맞지 않는 값을 입력하면 오류가 발생한다.
print() : 출력 후 줄바꿈 없음 println() : 출력 후 줄바꿈 있음 System.out.print("hello");
System.out.print("world");
// 결과: helloworld
System.out.println("hello");
System.out.println("world");
// 결과:
// hello
// world
println("hello")는 사실상 print("hello\n")와 같다.
import java.util.Scanner;
public class Scanner2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("첫 번째 숫자를 입력하세요: ");
int num1 = scanner.nextInt();
System.out.print("두 번째 숫자를 입력하세요: ");
int num2 = scanner.nextInt();
int sum = num1 + num2;
System.out.println("두 숫자의 합: " + sum);
}
}
import java.util.Scanner;
public class Scanner3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("첫 번째 숫자를 입력하세요: ");
int num1 = scanner.nextInt();
System.out.print("두 번째 숫자를 입력하세요: ");
int num2 = scanner.nextInt();
if (num1 > num2) {
System.out.println("더 큰 숫자: " + num1);
} else if (num2 > num1) {
System.out.println("더 큰 숫자: " + num2);
} else {
System.out.println("두 숫자는 같습니다.");
}
}
}
입력은 한 번으로 끝나는 경우가 많지 않다.
Scanner와 while문을 결합하면 사용자가 종료를 선택할 때까지 반복 입력을 받을 수 있다.
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);
}
}
}
import java.util.Scanner;
public class ScannerWhile3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int sum = 0;
while (true) {
System.out.print("정수를 입력하세요 (0을 입력하면 종료): ");
int number = scanner.nextInt();
if (number == 0) {
break;
}
sum += number;
}
System.out.println("입력한 모든 정수의 합: " + sum);
}
}