package am;
public class Exam01 {
    
    public static void main(String[] args){
        /* 자료형 - 프로그래밍의 기본은 데이터를 저장하고 그 값을 읽어오는 것
        * 데이터를 저장하려면 메모리에 값을 저장할 공간을 생성하고 이름을 부여해야함
        * 이 때 메모리에 부여하는 이름을 '변수'라고 함
        * 사물함에 물건을 쉽게 저장하고 꺼내오려면 사물함 번호가 있으면 됨
        * 마치 사물함의 번호가 바로 변수라고 보면 됨
        * 데이터를 저장하기 위해 생성하는 메모리 공간은 목적에 따라 크기와 특징이 다름
        * 이것을 자료형 (data type)이라고 함
        * 메모리 공간의 자료형에 따라 저장할 수 있는 값의 종류와 특징이 결정됨

        * 씨나 자바와 같은 컴파일 언어는 변수를 사용하기 전에 반드시 자료형을 선언해야 함
        * int a; > a는 정수형 변수
        * String b; > b는 문자열 변수

        * 두 가지 주의사항
        * 1. 자료형은 반드시 사용하기 전에 선언함
        * 2. 자료형은 반드시 한 번만 선언함. 한 번 선언된 변수의 자료형은 바꿀 수 없음
        * int a = 3;(O)    b = 5;(X)
        * 자료형을 선언하지 않으면 사용이 불가능함
        * String c; 
        * c = "안녕";
        * 자바 스크립트나 파이썬과 같은 인터프리터 계열의 언어들은
        * 자료형을 선언하지 않고 바로 변수 사용 가능 (Ex. Python)
        * int a = 3; 
        * double a = 5; // 변수 a를 int 자료형으로 이미 선언했기 때문에 다른 자료형으로 변경 불가
        * String b = "안녕";
        * b = 10; // String 자료형에는 문자열만 저장 가능함

        * 변수 선언 방법
        * 1) 변수 선언과 동시에 값을 대입
        *   int a = 3;
        * 2) 변수 선언 후에 값을 대입
        *   int a;
        *   a = 3;
        */

        // a라는 정수형 변수를 선언과 동시에 3을 대입하세요
        // b라는 정수형 변수를 먼저 선언하고 그리고 4를 대입하세요
        // a와 b를 출력하세요
        int a = 3;
        int b;
        b = 4;
        System.out.println(a);
        System.out.println(b);
    }
}
