[명품 JAVA Programming] 4일차
2.4 자바에서 키 입력
System.in: 키보드 장치를 제어하고 입력을 받는 표준 입력 스트림 객체
입력된 키를 단순한 바이트 정보로 응용프로그램에게 제공함
-> 응용프로그램은 받은 바이트 정보를 문자나 숫자로 변환해야 함(불편함)
==> 이때, 키보드에 입력된 키를 정수, 실수 등 사용자가 원하는 타입으로 변환해주는 Scanner 클래스를 사용함(편함)!!
Scanner 클래스의 객체 생성
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
Scanner 클래스의 주요 메소드
메소드 | 설명 |
String next() | 다음 토큰을 문자열로 리턴 |
String nextLine() | '\n'을 포함하는 한 라인을 읽고 '\n'을 버린 나머지 문자열 리턴 |
void close() | Scanner의 사용 종료 |
boolean hasNext() | 현재 입력된 토큰이 있으면 true, 아니면 입력 때까지 무한정 대기, 새로운 입력이 들어올 때 true 리턴. 'ctrl-z' 키가 입력되면 입력 끝이므로 false 리턴 |
nextLine() 사용하는 경우
1. 공백이 낀 문자열을 입력받기 위함
2. 'Enter' 키의 입력을 기다림
※ next()의 경우 'Enter' 키만 입력되면 절대 빈 문자열("")을 리턴하지 않고, 문자열이나 숫자 등 다른 키가 입력될 때까지 기다린다.
scanner 객체가 닫히면, System.in도 함께 닫힘
-> scanner(Scanner 클래스의 객체 변수이름) 객체가 종료되면 더이상 System.in을 사용하여 키 입력을 받을 수 없다!!!
==> 모든 Scanner 클래스의 객체는 하나뿐인 System.in을 공유하므로 개발자는 Scanner 객체를 하나만 생성하는 것이 바람직하다.
```
scanner.close();
scanner = new Scanner(System.in); (error)
```
2.5 연산
69/10 = 6 (몫)
69%10 = 9 (나머지)
1. 홀수인지 짝수인지 구분 (n % 2)
2. 3의 배수인지 구분 (n % 3)
삼항 연산자
opr1 = condition ? opr2 : opr3
opr2나 opr3은 식이 될 수도 있고 값이 될 수도 있음