책/명품 JAVA Programming

[명품 JAVA Programming] 4일차

dekoms 2023. 8. 9. 22:57

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은 이 될 수도 있고 이 될 수도 있음