출처 : https://www.shutterstock.com/

 

안녕하세요! 개발자 지망생 쏘코입니다.

이번 시간에는 프로그래밍에서 빼 놓을 수 없는 변수에 대해 공부해보도록 하겠습니다.

 

목차


    0. 변수의 정의

    이제는 Class를 담은 파일을 생성하는 것은 익숙해졌죠?

    Variable 파일을 생성합니다.

     

    a, b, c라는 변수를 만들어줍니다.

    그런데 변수 앞에 int, double, String가 붙어있죠?

    이것들이 바로 a와 b와 c라는 변수에 들어갈 수 있는 데이터형을 의미합니다.

    int a에는 int형 데이터만 들어갈 수 있고

    double b에는 double형 데이터만 들어갈 수 있고

    String c에는 String형 데이터만 들어갈 수 있는 것이죠.

    다른 데이터형이 들어가면 빨간 밑줄이 그어지면서 에러가 발생합니다.

     

    public class Variable {
    
    	public static void main(String[] args) {
    		
    		int a = 1; // 어떤 데이터 타입이 들어갈 수 있는지 설정해야 한다! (C, C++과 유사!)
    		// Number -> integer ... -2, -1, 0, 1, 2 ...
    		System.out.println(a); // 1 출력
    		
    //		int b = 1.1; // 1.1은 정수가 아닌 실수!!
    		double b = 1.1;
    		// real number -> double ... -2.0, -1.0, 0, 1.0, 2.0 ...
    		System.out.println(b);
    		
    //		int c = "Hello World"; // 문자열은 정수가 아니다!
    		String c = "Hello World";
    		System.out.println(c);
    
    	}
    
    }
    

     

    이렇게 귀찮게 변수에 들어갈 수 있는 데이터형을 미리 설정하면!!

    컴퓨터는 이 변수 안에 어떤 데이터가 들어가 있는지 굳이 확인하지 않아도 바로 알 수 있고,

    사용자도 이 변수 안에는 어떤 데이터를 넣을 수 있고, 현재 어떤 데이터가 들어가 있는지 알 수 있겠죠?


    1. 변수의 효용

    변수를 사용함으로써 긴 문장에 특정 글자가 들어가는 경우 쉽게 반복할 수 있고, 한번에 수정할 수도 있습니다.

    작업의 속도가 훨씬 빨라지겠죠?

     

    또한 단순히 숫자를 사용해서 코드를 짜면 이 숫자가 무엇인지 의미를 파악하는 데에 시간을 소모해야하지만,

    VAT라는 변수에 10.0이라는 double형 값을 넣고, VAT를 이용해 코드를 짜면 이 코드는 부가가치세를 사용한 코드임을 쉽게 인식할 수 있게 됩니다.

    협업할 때 서로의 의사소통에 큰 도움이 되겠죠!!

     

    public class Letter {
    
    	public static void main(String[] args) {
    		
    		String name = "kkamang";
    		System.out.println("Hello, "+name+"... "+name+"... kkamang ... bye"); // name에 있는 값만 바꾸면 한번에 변경 가능!
    		
    		double VAT = 10.0;
    		System.out.println(VAT); // 숫자가 들어가면 이 숫자가 무엇을 의미하는지 모르지만, VAT가 들어가면 부가가치세임을 쉽게 파악할 수 있다!
    
    	}
    
    }
    

     


    2. 데이터 타입의 변환

    Casting이라는 클래스를 하나 만들어서 진행합니다!

     

    double형 변수에 int형 데이터를 넣으면 어떻게 될까요?

    문제 없이 할당됩니다.

    그렇다면 int형 변수에 double형 데이터를 넣으면 어떻게 될까요?

    오류가 발생합니다!

     

    이것은 데이터의 손실 여부에 따라 컴파일러가 자체적으로 변환해주는 것인데,

    1의 경우 double형 변수인 1.0으로 바꿔서 저장하면 데이터의 손실이 없기 때문에 컴파일러가 자동으로 바꿔서 넣어주는 것이고,

    1.1의 경우 int형 변수인 1로 바꿔서 저장하면 데이터의 손실이 있기 때문에 컴파일러가 에러를 뿜어내게 되는 것이죠.

     

    이 때 오류가 발생했음을 알리는 빨간 밑줄 위에 마우스를 올리면 바꿀 수 있는 방법 2가지를 알려줍니다.

    첫 번째는 데이터의 타입을 바꿔주는 casting이고, 두 번째는 변수의 타입을 바꿔주는 것입니다.

     

     

    첫 번째 방법데이터를 int형으로 변환하는 것입니다.

    데이터를 int형으로 변환하는 경우, 소숫점이 버려집니다.

    1.1이 1이 되는 것이죠.

    이걸 출력하면 1로 변환되서 출력이 되겠죠?

     

    두 번째 방법변수의 타입을 수동으로 바꾸는 것과 같습니다.

    int를 double로 바꿔주는 것이죠.

     

    double d = 1.1;이 두 번째 방법, int e = (int) 1.1;이 첫 번째 방법!

     

    int형 데이터를 String형 데이터로 바꿔주려면 어떻게 할까요?

    Integer 클래스의 toString 라는 메소드를 사용하면 됩니다.

    toString의 매개변수로 숫자를 넣으면, 이 메소드의 결과값으로 String 형태의 숫자가 반환되는 것이죠.

     

     

    아래는 위 내용을 종합한 전체 코드입니다!

     

    public class Casting {
    
    	public static void main(String[] args) {
    		
    		double a = 1.1;
    		double b = 1; // double형 변수에 int형 데이터를 넣었는데 오류가 나지 않는다! - 손실되는 정보 없이 double로 자동 변환
    		double b2 = (double) 1; // 수동으로 바꿔준 것!!
    		System.out.println(b);
    		
    //		int c = 1.1; // int형 변수에 double형 데이터를 넣으면 오류 발생! - 손실되는 정보가 있다!
    		// 빨간 밑줄에 마우스를 올려보면 바꿀 수 있는 방법 2가지를 알려준다!
    		double d = 1.1;
    		int e = (int) 1.1;
    		System.out.println(e); // 1.1을 1로 casting해서 1 출력
    		
    		// 1 to String
    		String f = Integer.toString(1); // Integer 클래스에 속해있는 toString이라는 메소드를 사용해서 정수를 String으로 바꾼다는 말!
    		System.out.println(f.getClass()); // 데이터의 클래스(타입)을 알려주는 메소드
    	}
    
    }
    

     


    Java의 데이터 형변환의 경우 C++와는 다르게 데이터값이 버려지는 경우 함부로 컴파일을 하지 않는다는 것을 알 수 있었습니다.

    그 외의 내용은 C++와 거의 유사하기 때문에, 이해가 어렵지 않았습니다.

     

    다음 포스팅은 프로그래밍이 무엇인지, 지금까지 배운 내용이 얼마나 대단한 내용인지를 알아보도록 하겠습니다!

    읽어주셔서 감사합니다 :)

    반응형
    • 네이버 블로그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기