본문 바로가기
개발 노트/기초 지식

[java] 구구단 강의에서 Integer.parsInt 를 쓴 이유

by tokkiC 2022. 4. 16.

인터넷 강의에서 뜬금없이 갑자기 처음듣는 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();

            }
}

놀랍게도 같은 결과를 내며 잘 돌아간다

강사님의 의도는 데이터 타입의 중요성과 형변환을 가르쳐 주기 위한 큰 그림이 아니었을까?

나한테 직접 찾아서 공부해보라는 큰 그림을 위해서였죠? 그렇겠죠?

 

.

다음엔 데이터의 형변환에 대해 정리해봐야겠다

댓글