package CHAP02;

public class C2_02_PrimitiveTypeRanges { // 기본 자료형 범위 예제 클래스
    public static void main(String[] args) {
    	
        // 정수형 자료형 (각 자료형의 최소값과 최대값 설정)
        byte minByte = -128, maxByte = 127; // byte 범위 (-128 ~ 127)
        short minShort = -32_768, maxShort = 32_767; // short 범위 (-32,768 ~ 32,767)
        int minInt = -2_147_483_648, maxInt = 2_147_483_647; // int 범위 (-2,147,483,648 ~ 2,147,483,647)
        long minLong = -9_223_372_036_854_775_808L, maxLong = 9_223_372_036_854_775_807L; // long 범위 (-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807)

        // 정수형 범위 출력
        System.out.println("정수형 자료형 범위:");
        System.out.println("Byte  최솟값: " + minByte + " ~ 최댓값: " + maxByte);
        System.out.println("Short 최솟값: " + minShort + " ~ 최댓값: " + maxShort);
        System.out.println("Int   최솟값: " + minInt + " ~ 최댓값: " + maxInt);
        System.out.println("Long  최솟값: " + minLong + " ~ 최댓값: " + maxLong);

        // 실수형 자료형 (각 자료형의 최소값과 최대값 설정)
        float minFloat = 1.4E-45f;
        float maxFloat = 3.4028235E+38f; // float 범위 (1.4E-45 ~ 3.4028235E+38)
        double minDouble = 4.9E-324; 
        double maxDouble = 1.7976931348623157E+308; // double 범위 (4.9E-324 ~ 1.7976931348623157E+308)

        // 실수형 범위 출력
        System.out.println("\n실수형 자료형 범위:");
        System.out.println("Float  최솟값: " + minFloat + " ~ 최댓값: " + maxFloat);
        System.out.println("Double 최솟값: " + minDouble + " ~ 최댓값: " + maxDouble);

        // 문자형 자료형 (char는 숫자로 저장됨)
        char minChar = 0, maxChar = 65535; // char 범위 (0 ~ 65535)

        // 문자형 범위 출력
        System.out.println("\n문자형 자료형 범위:");
        System.out.println("Char   최솟값: " + (int) minChar + " ~ 최댓값: " + (int) maxChar);

        // 논리형 자료형 (true 또는 false만 가질 수 있음)
        boolean boolTrue = true, boolFalse = false;

        // 논리형 값 출력
        System.out.println("\n논리형 자료형:");
        System.out.println("Boolean 값: " + boolTrue + " 또는 " + boolFalse);
    }
}


//public class C2_02_PrimitiveTypeRanges {	
//    public static void main(String[] args) {
//    	
//        System.out.println("정수형 자료형 범위:");
//        System.out.println("Byte  최소값: " + Byte.MIN_VALUE + " ~ 최대값: " + Byte.MAX_VALUE);
//        System.out.println("Short 최소값: " + Short.MIN_VALUE + " ~ 최대값: " + Short.MAX_VALUE);
//        System.out.println("Int   최소값: " + Integer.MIN_VALUE + " ~ 최대값: " + Integer.MAX_VALUE);
//        System.out.println("Long  최소값: " + Long.MIN_VALUE + " ~ 최대값: " + Long.MAX_VALUE);
//
//        System.out.println("\n실수형 자료형 범위:");
//        System.out.println("Float  최소값: " + Float.MIN_VALUE + " ~ 최대값: " + Float.MAX_VALUE);
//        System.out.println("Double 최소값: " + Double.MIN_VALUE + " ~ 최대값: " + Double.MAX_VALUE);
//
//        System.out.println("\n문자형 자료형 범위:");
//        System.out.println("Char   최소값: " + (int) Character.MIN_VALUE + " ~ 최대값: " + (int) Character.MAX_VALUE);
//
//        System.out.println("\n논리형 자료형:");
//        System.out.println("Boolean 값: " + Boolean.TRUE + " 또는 " + Boolean.FALSE);
//        
//    }
//}
