3. 화면에서 입력받기 - Scanner
- Scanner란?
화면으로부터 데이터를 입력받는 기능을 제공하는 클래스(클래스는 기능을 제공하는 것이라고만 알아두면 된다 아직은.)
- Scanner를 사용하려면...
1) import문 추가 - import문은 사용하려는 클래스가 어디에 속해 있는 지, 어떤 패키지에 속해 있는지 알려주기 위한 것.
import java.util.*;
2) Scanner객체의 생성 (객체를 생성해야 사용할 수 있는 클래스가 있고, 없어도 되는 클래스가 있다. println이나 printn은 객체 생성 필요x.) Scanner는 꼭 객체를 생성해야만 한다.
Scanner scanner = new Scanner(System.in); // System.in은 화면입력을 의미
3) Scanner 객체를 사용
int num = scanner.nextInt () ; // 화면에서 입력받은 정수를 num에 저장
String input = scanner.nextLine(); // 화면에서 입력받은 내용을 input에 저장
int num = Integer.parseInt(input); // 문자열(input)을 숫자(num)로 변환
*** 숫자를 문자열로 바꿀때는? " " 쌍따옴표 사용/ 문자열을 숫자로 바꿀때는? Integer.parseInt() 메소드를 사용
--> 화면입력 같은 경우는 jvm에 의해 자동적으로 관리가 되기 때문에 우리가 따로 닫을 필요가 없다. 이클립스 입장에선 객체를 사용했는데 닫아주지 않았으니까 경고메세지를 보내는 것. but 이 경고 메세지는 무시해도 괜찮다.
<ch2 - 15, 16 정수형의 오버플로우>
- 표현할 수 있는 범위를 넘어섰다는 걸 오버플로우 라고 한다
최대값 + 1 --> 최소값
최소값 - 1 --> 최대값
<ch2-17 타입간의 변환방법>
1, 문자와 숫자간의 변환
숫자 -> 문자 : +'0'
문자 -> 숫자: -'0'
2. 문자열로의 변환
숫자 -> 문자열: " " 쌍따옴표
'3' -> "3" : " " 빈 문자열 쌍따옴표
3. 문자열을 숫자로 변환
Integer.parseInt() --> 라는 메소드를 사용해야 한다 (정수의 경우)
그럼 실수인 경우는? "3.14" --> Double.parseDouble("3.14")
"3" -> '3' --> "3".charAt(0) --> '3'
문자열 3과 문자 3에 1을 더하는건 완전히 다르다. 왜 그런지는 다음장에서 배운다
--> 원래는 (char)라는 형변환이 필요하다. 하지만 이건 나중에 배울거라 알고만 있으면 된다. 9번째줄 3앞에 (char)붙여주면 3으로 제대로 나온다.