Wed, 20th Oct 2021

package sec00.exam01;

public class CharacterEx1 {

	public static void main(String[] args) {
		char ch1 = 'A';
		System.out.println(ch1); //A
		System.out.println((int)ch1); //A를 65로 인코딩
		
		char ch2 = 66;
		System.out.println(ch2); //66을 B로 디코딩
		
		int ch3 = 67;
		System.out.println(ch3); //67
		System.out.println((char)ch3); //67을 C로 디코딩

	}

}
package sec00.exam01;

public class CharacterEx2 {
	public static void main(String[] args) {
		char ch1 = '한';
		char ch2 = '\uD55C'; //유니코드
		char ch3 = '\uAE00'; //유니코드
		
		System.out.println(ch1); //println : 줄 바꿈
		System.out.print(ch2); //print : 줄 바꿈 없음
		System.out.print(ch3);
	}				
}
package sec00.exam01;

public class Q1_Q2_Q3 {

	/*
	 * 1. 바이트 크기가 작은 자료형을 더 큰 자료형으로 대입하는 형 변환은 자동으로 이루어 집니다. (예)
	 * 2. 실수를 정수형 변수에 대입하는 경우 형변환이 자동으로 이루어지고, 소수점 이하 부분만 없어집니다. (아니오)
	 * 3. 더 많은 실수를 표현하기 위해 가수부와 지수부로 비트를 나누어 표현하는 방식을 (부동소수점)방식 이라고 합니다.
	 */
}
package sec00.exam01;

public class Q4 {

	public static void main(String[] args) {
	/* 4. 변수 두개를 선언해서 10은 int 타입으로 선언하고, 
	 * 	다른 하나는 double 타입으로 2.0으로 초기화하고 사칙연산 ( +, -, *, / ) 결과를 정수로 타입캐스팅해서 출력하세요.
	 * 	(ex. System.out.println( (int)(num1 + num2) );
	 */
		
		int num1 = 10;
		double num2 = 2.0;
			
		System.out.println(num1 + num2); //double 타입이 더 정밀하므로 double로 지동변환이 됨 = 12.0 출력
		System.out.println((int)(num1 + num2));
		System.out.println((int)(num1 - num2));
		System.out.println((int)(num1 * num2));
		System.out.println((int)(num1 / num2));
		System.out.println(num1 + (int) num2); //위와 동일하지만 위 방법을 추천
		System.out.println(num1 - (int) num2);
		System.out.println(num1 * (int) num2);
		System.out.println(num1 / (int) num2);
		
		//String -> char 형 변환 참고
		String str = "가나다";
		//char ch1 = ' ';
		char ch2 = str.charAt(0); //String 타입의 변수.charAt(x) : 해당 변수 내 x 인덱스(가)를 가져옴. (char)은 생략 가능
		System.out.println(ch2);
		
		int num3 = 10; //내가 그냥 해본 것. 조금 복잡하긴 하다.
		double num4 = 2.0;
		int num5 = (int) num4;
		int result = num3 + num5;
		System.out.println(result);

	}

}
package sec00.exam01;

public class Q5 {

	public static void main(String[] args) {
		
	//5.'글'이라는 한글 문자의 유니코드 값을 찾아서 char 형으로 선언한 변수에 저장한 뒤 그 변수를 출력해보세요.
		
		char char1 = '\uAE00';
		
		System.out.println(char1);
		
	}

}
package sec01.exam01_variable;

public class LiteralExample {
	public static void main(String[] args) {
		int var1 = 10;
		System.out.println(var1);
		
		int var2 = 010; //8진수 (8^0 * 8^1 = 8)	
		System.out.println(var2);
		
		int var3 = 0x10; //16진수
		System.out.println(var3);
	}
}
package sec01.exam01_variable;

public class VariableExample {
	public static void main(String[] args) {
		int value = 10;
		//value값은 초기화(initialize)되어야 읽을 수 있음
		int result = value + 10;
		System.out.println(result);
	}

}
package sec01.exam01_variable;

public class VariableScopeExample {
	public static void main(String[] args) {
		int var1; //전역 변수
		
		if(true) {
			int var2; //지역 변수
			
			var1 = 10;
			var2 = 20;
		}
		var1 = 10;
		//var2 = 25; var2는 if 블럭 안에서 선언된 지역변수 이므로 if 블럭 밖에서 사용 불가
		
		for(int i=0; i<1; i++) {
			int var3; //지역 변수
			
			var1 = 10;
			//var2 = 20; var2는 if 블럭 안에서 선언된 지역변수 이므로 if 블럭 밖에서 사용 불가
			var3 = 30;
		}
		
		var1 = 10;
		//var3 = 30; var3는 for 블럭 안에서 선언된 지역변수 이므로 for 블럭 밖에서 사용 불가
		//i = 100; i는 for 블럭 안에서 선언된 지역변수 이므로 for 블럭 밖에서 사용 불가
	}
}
package sec01.exam01_variable;

public class VariableScopeExample2 {
	
	public static void main(String[] args) {
		int v1 = 15; //전역변수
		if(v1>10) {
			int v2; //지역변수
			v2 = v1 - 10;
		}
		
		//int v3 = v1 + v2 + 5; v2는 if 블럭 내 지역변수 이므로 if 블럭 외부에서 사용(참조) 불가
	}
}
package sec02.exam01_byte;

public class ByteExample {
	
	public static void main(String[] args) {
		byte var1 = -128;
		byte var2 = -30;
		byte var3 = 0;
		byte var4 = 30;
		byte var5 = 127;
		//byte var6 = 128; byte 타입의 범위는 -128~127 이므로 에러발생
		
		System.out.println(var1);
		System.out.println(var2);
		System.out.println(var3);
		System.out.println(var4);
		System.out.println(++var5); 
		//증감연산자 i++ : var5 = var5 + 1임. 
		//127+1=128로 128이 출력되어야 하나 byte 범위를 넘어갔으므로 순환하는 성질에 의해 -128이 출력됨. +2가 될 경우 -127이 됨.
		//byte 범위 : -128 -127 -126 -125 ... 0 ... 125 126 127
		
	}
}
package sec02.exam01_byte;

public class GarbageValueExample {

	public static void main(String[] args) {
		byte byteVar = 125; //-128~127
		int intVar = 125;
		
		for(int i=0; i<5; i++) {
			byteVar++; //126 127 128(-128) 129(-127) 130(-126) ()는 순환
			intVar++; //126 127 128 129 130
			
			System.out.println("byteVar: " + byteVar + "\t" + "intVar: " + intVar);  // "\t"는 띄어쓰기
		}

	}

}
package sec02.exam02_char;

public class CharExample {

	public static void main(String[] args) {
		char c1 = 'A'; //A
		char c2 = 65; //A 아스키코드
		char c3 = '\u0041'; //A 유니코드
		System.out.println(c1);
		System.out.println(c2);
		System.out.println(c3);
		System.out.println( );
		
		char c4 = '가'; //가
		char c5 = 44032; //가 아스키코드
		char c6 = '\uac00'; //가 유니코드
		System.out.println(c4);
		System.out.println(c5);
		System.out.println(c6);
		System.out.println( );
		
		int intCode = c1; //c1='A'의 아스키코드 값은 65임. 변수타입을 int으로 선언하였으므로 65가 나옴. 
		System.out.println(intCode);
		
		
	}
}
package sec02.exam03_int;

public class IntExample {
	public static void main(String[] args) {
		int var1 = 10;
		int var2 = 012; //8진수 literal 표시 0을 앞에 붙여줌. 1 * 8^1 + 2 * 8^0 = 8 + 2 = 10
		int var3 = 0xA; //16진수 literal 표시 : 0x을 앞에 붙여줌. A는 10
		
		System.out.println(var1);
		System.out.println(var2);
		System.out.println(var3);
	}
}
package sec02.exam04_long;

public class LongExample {
	public static void main(String[] args) {
		//정수값의 기본은 int
		long var1 = 10;
		long var2 = 20L;
		//long var3 = 1000000000000; 
		//기본적으로 정수는 int로 인식함. 해당 변수값은 int의 범위를 벗어나 에러 발생. 아래와 같이 변수값 뒤에 L을 붙여줘야함
		long var4 = 1000000000000L;
		
		System.out.println(var1);
		System.out.println(var2);
		System.out.println(var4);
		
	}
}
package sec02.exam05_float_double;

public class FloatDoubleExample {
	public static void main(String[] args) {
		//실수값의 기본은 double
		double var1 = 3.14;
		//float var2 = 3.14; 3.14는 double 타입으로 인식하는데 double보다 float가 더 작은 단위라서 해당 변수선언은 에러 발생
		//아래와 같이 F 붙여야함
		//float 타입은 double 타입보다 소수점 자리를 덜 출력한다. (정밀도 테스트 참고)
		float var3 = 3.14F;
		
		System.out.println(var1);
		System.out.println(var3);
		
		//정밀도 테스트
		double var4 = 0.1234567890123456789; //0.12345678901234568
		float var5 = 0.1234567890123456789F; //0.12345679
		System.out.println(var4);
		System.out.println(var5);
		
		int var6 = 3000000; //3000000
		double var7 = 3e6; //3000000.0
		float var8 = 3e6F; //3000000.0
		double var9 = 2e-3; //0.002
		System.out.println(var6);
		System.out.println(var7);
		System.out.println(var8);
		System.out.println(var9);
		
	}
}
package sec02.exam06_boolean;

public class BooleanExample {
	public static void main(String[] args) {
		boolean stop = false; //boolean 타입의 변수 선언 시 변수값으로 true나 false를 선언
		
		if(stop) { //stop값이 true일 때
			System.out.println("중지합니다.");
		} else { //stop값이 false일 때
			System.out.println("시작합니다.");
		}
	}
}
시작합니다.

'Java > 2. 변수 (Variable)' 카테고리의 다른 글

Day 3 : Exercise - Variable  (0) 2021.11.04
Day 3 : Practice #2  (0) 2021.10.25
Day 2 : 변수 (Variable)  (0) 2021.10.20

+ Recent posts