// int 타입 값을 float 타입의 변수에 저장
// (float)가 없어도 컴파일러가 자동으로 형변환함
float f = 1234;
float f = (float)1234;
int i = 3.14f; // 에러
int i = (int)3.14f; // 수동 형변환 해줘야 함
byte b = 100;
// byte 타입의 범위(-128 ~ 127의 값을 대입하기 때문에 자동 형변환 가능함)
// 리터럴 값을 대입하기 때문에 가능하고 int 타입의 변수를 대입하면 에러남
int i = 0;
byte b = i; // 에러
byte b = (byte)i; // 수동 형변환해줘야 함
연산 전에 피연산자의 타입을 일치시키는 것
- 두 피연산자의 타입을 같게 일치시킨다.(보다 큰 타입으로 일치)
- 피연산자의 타입이 int보다 작은 타입으면 int로 변환된다.
ex) byte + short = int + int = int
-> (char)'2' - (char)'0' => (int)50 - (int)48 = (int)2
'A' > 'B' // false : char타입의 값이기 때문에 int 타입으로 변환되어 비교 연산됨
==
대신 equals()
사용(대소문자 구분).equalsIgnoreCase()
: 대소문자 구분하지 않고 비교함break;
빼먹지 않도록 유의Loop1 : for(int i = 2; i <= 9; i++) {
for(int j = 1; j <= 9; j++){
if(j == 5)
break Loop1;
System.out.println(i + "*" + j + "=" + (i * j));
} // end of for i
System.out.println();
} // end of Loop1
// -> output
// 2*1=2
// 2*2=4
// 2*3=6
// 2*4=8
Loop1 : // for loop에 "Loop1"이라는 이름을 붙임
for(int i = 2; i <= 9; i++) {
for(int j = 1; j <= 9; j++){
if(j == 5)
break;
System.out.println(i + "*" + j + "=" + (i * j));
} // end of for i
System.out.println();
} // end of Loop1
// -> output
// 2*1=2
// 2*2=4
// 2*3=6
// 2*4=8
// 3*1=3
// 3*2=6
// .
// .
// .
// 9*4=36
같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
ex)int[] score = new int[5];
/int score[] = new int[5];
타입[] 배열이름;
배열이름 = new 타입[길이];
배열이름[인덱스] = 값;
타입[] 배열이름 = { 값1, 값2, 값3, ...}
Arrays.toString(iArr)
int[] ball = new int[45];
// 배열의 각 요소에 1~45의 값을 저장
for(int i = 0; i < ball.length; i++) {
ball[i] = i+1;
}
int tmp = 0, j = 0;
// 배열의 i번째 요소와 임의의 요소에 저장된 값을 서로 바꿔서 값을 섞음
// 0번째부터 5번째 요소까지 6개만 바꿈
for(int i = 0; i < 6; i++) {
j = (int)(Math.random() * 45);
tmp = ball[i];
ball[i] = ball[j];
ball[j] = tmp;
}
// 배열 ball의 앞에서부터 6개의 요소를 출력
for(int i = 0; i < 6; i++) {
System.out.println(ball[i]);
}