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("시작합니다.");
}
}
}
시작합니다.