인터넷 강의에서 뜬금없이 갑자기 처음듣는 Inter.parseInt (정수로 형변환) 라는 개념을 사용하여 코딩을 설명한다
생초보라 그런가 무엇인지 설명하기보다는 일단 이렇게 쓰면 결과가 나온다 하시는데
package tokkic.calendar; // 이 클래스의 상위 폴더를 나타낸다
import java.util.Scanner; // Scanner 클래스를 사용하기 위해 import 한다
public class Sum {
public static void main(String[] args) {
int a, b; // 변수 a 와 b 를 선언 int a; int b; 사이에 , 를 사용하여 간단히 하였다
// 키보드로 두 수의 입력 받기 // 변수 a 와 b 를 키보드 입력으로 초기화 ( = 값을 넣다) 할 것이다
Scanner scan = new Scanner(System.in); // Scanner 클래스의 System.in를 사용하여 입력 받은 값을 인스턴스화한다
String s1, s2; // 문자열인 변수 s1 과 s2 를 선언한다
System.out.println("두 수를 입력해주세요"); // 텍스트 출력
s1 = scan.next(); // next()를 사용하여 띄어쓰기 전까지의 값을 s1 에 저장한다
s2 = scan.next(); // next()를 사용하여 띄어쓰기 전까지의 값을 s2 에 저장한다
a = Integer.parseInt(s1); // s1 의 값을 해석해서 정수화하고 a 에 저장한다
b = Integer.parseInt(s2); // s2 의 값을 해석해서 정수화하고 a 에 저장한다
System.out.println(a);
System.out.println(b); // a 와 b 의 값을 출력한다
scan.close(); // Scanner 클래스의 사용이 끝났으므로 닫아준다
}
}
나중에 알게될테니 일단 넘어가라고 하시는데 따로 공부해서 옆에 주석을 달아보았다
위에서 integer.parseInt (정수로 형변환) 를 사용하는 이유는
System.in 을 통해서 입력받은 값 s1, s2 가 문자열 String 의 형식을 갖고 있기 때문이다
문자열 타입 String 이기 때문에 정수 타입으로 바꿔주기 위해서
integer.parseInt 을 통해서 문자열 s1, s2 를 정수로 데이터 타입을 바꿔준것이다
추후 뒤에서 a와 b의 값을 사칙연산으로 계산하기 위해서 계산가능한 정수 타입으로 바꿔준 것이다
여기서 주의할 점은 입력 시 "문자열" 로 입력된 걸 풀어서 정수화 하는 과정인데
문자열 " " 안의 내용이 정수로만 이루어져야지 사용가능하단 것이다
integer.parseInt를 통해 데이터 타입 변환법의 존재와 사용법을 알게되었지만
그냥 처음부터 위의 코드에서 s1과 s2를 처음부터 문자열이 아닌 정수로 선언했다면 어땠을까?
package tokkic.calendar;
import java.util.Scanner;
public class Sum {
public static void main(String[] args) {
// int a, b; // 더이상 변수 a, b가 필요없으므로 선언하지 않는다
// 키보드로 두 수의 입력 받기
Scanner scan = new Scanner(System.in);
int s1, s2; // 변수 s1과 s2를 정수타입으로 선언한다
System.out.println("두 수를 입력해주세요");
s1 = scan.nextInt(); // 입력 할때 처음부터 정수 타입으로 입력받도록 한다
s2 = scan.nextInt();
System.out.println(s1);
System.out.println(s2);
scan.close();
}
}
놀랍게도 같은 결과를 내며 잘 돌아간다
강사님의 의도는 데이터 타입의 중요성과 형변환을 가르쳐 주기 위한 큰 그림이 아니었을까?
.
다음엔 데이터의 형변환에 대해 정리해봐야겠다
'개발 노트 > 기초 지식' 카테고리의 다른 글
[java] static 의 이해 (0) | 2022.04.21 |
---|---|
[java] 데이터 타입의 형변환, 음수의 표현 (0) | 2022.04.18 |
[java] nextLine 과 nextInt 의 차이, token (0) | 2022.04.15 |
[java] Scanner 클래스의 사용 (0) | 2022.04.15 |
parse 와 compile (0) | 2022.04.14 |
댓글