Scanner 학습
2025. 9. 15. 15:57ㆍ개발/자바
반응형
Scanner
- `System.out` 을 통해서 출력을 했듯이, `System.in` 을 통해서 사용자의 입력을 받을 수 있다. 그런데 자바가 제공하는 `System.in` 을 통해서 사용자 입력을 받으려면 여러 과정을 거쳐야해서 복잡하고 어렵다.
- 자바는 이런 문제를 해결하기 위해 `Scanner` 라는 클래스를 제공한다. 이 클래스를 사용하면 사용자 입력을 매우 편리하게 받을 수 있다.
- Scanner scanner = new Scanner(System.in);`
- 이 코드는 객체와 클래스를 배워야 정확히 이해할 수 있다. 지금은 `Scanner` 의 기능을 사용하기 위해 `new` 를 사용해서 `Scanner` 를 만든다 정도로 이해하면 된다.
- `Scanner` 는 `System.in` 을 사용해서 사용자의 입력을 편리하게 받도록 도와준다.
- `Scanner scanner` 코드는 `scanner` 변수를 선언하는 것이다.
- 이제부터 `scanner` 변수를 통해서 `scanner` 를 사용할 수 있다.
- `scanner.nextLine()`
- 엔터( `\n` )을 입력할 때 까지 문자를 가져온다.
- `scanner.nextInt()`
- 입력을 `int` 형으로 가져온다. 정수 입력에 사용한다.
- `scanner.nextDouble()`
- 입력을 `double` 형으로 가져온다. 실수 입력에 사용한다.
- print() vs println()
System.out.println("Enter the first number");
System.out.print("Enter the second number\n");
반복문 실행
while ((input = scanner.nextInt()) != -1) //사용자 3입력
while ((input = 3) != -1) //input에 3 대입
while ((input(3)) != -1) //input의 값 읽기
while ((3) != -1) //() 제거
while (3 != -1) // 부등식 연산
while (true) //while문 실행
반복문 종료
while ((input = scanner.nextInt()) != -1) //사용자 -1입력
while ((input = -1) != -1) //input에 -1 대입
while ((input(-1)) != -1) //input의 값 읽기
while ((-1) != -1) //() 제거
while (-1 != -1) // 부등식 연산
while (false) //while문 종료
퀴즈
- 자바에서 Scanner 클래스를 사용하려면 일반적으로 무엇이 필요할까요?
- Scanner는 java.util 패키지에 정의되어 있어요. 사용하려면 코드 맨 위에 `import java.util.Scanner;` 문이 필요하답니다.
- 사용자로부터 정수(whole number)를 입력받기 위해 Scanner 클래스의 어떤 메소드를 사용해야 할까요?
- `nextInt()`는 입력 스트림에서 다음 정수 값을 읽어와요. 한 줄 전체는 `nextLine()`, 소수점은 `nextDouble()`을 써야 하죠
- Scanner로 `nextInt()`를 사용한 직후에 `nextLine()`을 사용할 때 발생할 수 있는 흔한 문제는 무엇일까요?
- `nextInt()`는 숫자만 읽고 엔터(개행 문자)를 남겨요. 바로 다음 `nextLine()`이 그 엔터를 읽어버리는 문제랍니다.
- 변수 A와 B의 값을 서로 바꾸려면 (Swap) 임시 변수가 왜 필요한가요?
- `a=b; b=a;` 순서로 하면 A의 원래 값이 덮어씌워져 사라져요. 임시 변수에 A 값을 먼저 저장해야 안전하게 바꿀 수 있죠.
- 사용자 입력을 계속 받는 `while` 루프를 특정 입력값(예: -1 또는 "exit")에서 종료시키려면 어떻게 해야 할까요?
- `while (true)`와 `break`를 함께 쓰거나, `while (입력값 != 종료값)`처럼 루프 조건 자체에 종료 조건을 명시할 수 있어요.
- `while (true)`와 `break`를 함께 쓰거나, `while (입력값 != 종료값)`처럼 루프 조건 자체에 종료 조건을 명시할 수 있어요.
반응형
'개발 > 자바' 카테고리의 다른 글
변수 (0) | 2025.09.08 |
---|---|
Hello World (0) | 2025.09.06 |