타입변환이 헷갈리니 더욱 공부 필요!
int x;
int y;
int z;
혹은
int x, y, z
정수형 변수 'score'선언하고 초기값은 80
int score; // 변수 선언 score = 80; // 값 저장
변수 선언 동시에 초기값 저장 가능
int score = 80;
/* 잘못된 코딩 예시 */
int value; // 변수 선언
int result = value + 10; // 변수 value 값을 읽고 10 더해서 변수 result에 저장
변수 선언은 되었으나 초기화 되지 않았음. value 변수 존재하지 않음. 컴파일 에러 발생
/* 올바른 코딩 예시 */
int value = 30; // 변수 value에 30으로 변수 초기화
int result = value + 10; // 변수 value 값 30을 읽고 10을 더해서 변수 result에 저장
변수 초기화를 하지 않아 12라인에서 컴파일 에러(The local variable value may not have been initialized) 발생
변수 초기화 후 컴파일하고 실행
//변수 hour와 minute에 각각 3과 5 저장
int hour = 3;
int minute = 5;
System.out. println(hour + "시간" + minute + "분")
Console: 3시간 5분
int totalMinute = (hour * 60) + minute;
변수 hour에 저장된 값으로 대체
int totalMinute = (3 * 60) + minute;
변수 minute에 저장된 값으로 대체
int totalMinute = 180 + 5;
산술된 값을 변수 totalMinute에 저장
int totalMinute = 185;
public static void main(String[] args) {
int var1; //메소드 블록 내 선언
if( ) {
int var2; //if 블록 내 선언
//사용 가능: var1, var2
}
for( ) {
int var 3; //for 블록 내 선언
//사용 가능: var1, var3
//var2 사용 불가능
}
//사용 가능: var1
//사용 불가능: var2, var3
기본타입: 정수, 실수, 논리값을 저장할 수 있음
소스 코드에서 프로그래머에 의해 직접 입력된 값. 자바가 정수로 인식하는 경우 ⇣
2진수: 0b or 0B로 시작, 0과 1로 구성
0b1011 -> 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0 -> 11
0b10100 -> 20
8진수: 0으로 시작하고 숫자 0~7로 구성
013 -> 11
0206 -> 134
10진수: 소수점이 없는 숫자 0~9로 구성
11
365
16진수: 0x or 0X로 시작, 숫자 0~9와 A, B, C, D, E, F or a, b, c, d, e, f로 구성
0xB3 -> 179
0x2A0F -> 10767
Type mismatch: cannot convert from int to byte
오류 발생l
, L
붙이면 컴파일러가 long 타입으로 인식함.long balance = 30000000000;
⇠ 컴파일 에러(int 허용 범위 초과)long balance = 30000000000L;
char var1 = "A"
⇢ String var1 = "A";
char var2 = "홍길동"
⇢ String var2 = "홍길동";
String str = "나는 \"자바\"를 좋아합니다.";
System.out.println(str);
나는 "자바"를 좋아합니다.
\t
로 탭만큼 띄우기String str = "번호\t이름\t나이";
System.out.println(str);
번호 이름 나이
\n\
으로 개행String str = "홍길동\n감자바";
홍길동
김자바
소문자 e
or 대문자 E
가 포함된 숫자 리터럴은 지수와 기수로 표현된 소수점이 있는 10진수 실수로 인식소문자 f
or 대문자 F
붙여야 됨. (그렇지 않으면 컴파일 에러 발생)float(7자리)
, double(15자리)
byte a = 10;
int b = a;
byte < short < int < long < float < double
큰 허용 범위 타입을 작은 허용 범위 타입으로 강제로 나눠서 저장하는 것.
캐스팅 연산자 괄호() 사용.
int -> char은 문자 출력할 수 있음
실수타입 -> 정수타입은 소수점 이하 부분 버리고 정수 부분만 저장됨.
정수 타입 변수가 산술 연산식에서 피연산자로 사용되면 int타입보다 작은 타입의 변수는 int타입으로 자동 타입 변환되어 연산 수행
byte 변수가 피연산자로 사용되면 int 타입으로 변환되어 연산됨. 연산 결과는 int 변수저장해야 함. (byte 변수에 연산 결과 저장시 컴파일 에러 발생)
int intValue = 10;
double doubleValue = 5.5;
int result = intValue + (int) doubleValue;
결과: result에 15 저장됨.
숫자 + 숫자 -> 덧셈 연산 => 숫자
숫자 + "문자열" -> "숫자" + "문자열" => "숫자문자열"
숫자 + "문자열" + 숫자 -> "숫자" + "문자열" + 숫자 -> "숫자" + "문자열" + "숫지" => "숫자문자열숫자"
"문자열" + 숫자 + 숫자 -> "문자열" + "숫자" + 숫자 -> "문자열" + "숫자" + "숫자" => "문자열숫자숫자"
// String -> byte
String str = "10";
byte value = Byte.parseByte(str);
// String -> short
String str = "200";
short value = Short.parseShort(str);
String.valueOf()
메소드 사용String.valueOf(3)
-> 문자열 "3"
👾추가숙제 확인문제 9번
9. var1부터 var4까지 +연산을 수행해서 int 타입 result 변수에 9가 저장되도록 ____에 들어갈 코드를 작성해보세요.
long var1 = 2L; float var2 = 1.8f; double var3 = 2.5; String var4 = "3.9"; int result = ____; System.out.println(result);