if(조건식 1){
코드1
}else if(조건식 2){
코드2
}else{
코드3
}
흔히 사용되는 조건식의 기본 구조이다.
조건식 1이 참이면 코드1, 조건식 2가 참이면 코드2, 조건식1과 2가 모두 거짓이면 조건식 3이 실행된다.
if 단독으로도 if-else, if-else if, if-else if-else 등으로 다양하게 사용이 가능하며 if문은 꼭 들어가야 한다.
그렇다면 조건식1과 2가 모두 참이면 어떻게 될까?
if (true) {
System.out.println("조건식 1");
} else if (true) {
System.out.println("조건식 2");
} else {
System.out.println("조건식 3");
}
-> 조건식 1
가장 먼저 참인 조건식 1이 출력된다.
이를 통해 조건식이 위에서부터 순차적으로 실행된다는 것을 알 수 있다!
int num = 1;
switch (num){
case 1:
System.out.println("num은 1입니다.");
break;
case 2:
System.out.println("num은 2입니다");
break;
default:
System.out.println("num은 3입니다");
break;
}
-> num은 1입니다.
int num = 1;
switch (num){
case 1:
System.out.println("num은 1입니다.");
case 2:
System.out.println("num은 2입니다.");
default:
System.out.println("num은 3입니다.");
->num은 1입니다.
num은 2입니다.
num은 3입니다.
int num = 2;
switch (num){
case 1:
System.out.println("num은 1입니다.");
case 2:
System.out.println("num은 2입니다.");
default:
System.out.println("num은 3입니다.");
->num은 2입니다.
num은 3입니다.
for (변수 초기화; 조건식; 변수 증감식){
코드1
}
for (int i = 0; i<5; i++){
System.out.println("i = " + i);
}
->i = 0
i = 1
i = 2
i = 3
i = 4
int i = 0
for (; i<5; ){
System.out.println("i = " + i);
i++
}
for (int i = 0; i<5; i++){
if (i==1){
continue;
}
if (i==4){
break;
}
System.out.println("i = " + i);
}
->i = 0
i = 2
i = 3
for (int i = 2; i<4; i++){
for (int j = 1; j<10; j++){
System.out.println(i + " * " + j + " = " + i*j);
}
}
->2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
...
3 * 8 = 24
3 * 9 = 27
loop1 :
for (int i = 2; i<10; i++){
loop2 :
for (int j = 1; j<10; j++){
System.out.println(i + " * " + j + " = " + i*j);
if (j==9){
break loop1;
}
}
}
->2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
loop1 :
for (int i = 2; i<10; i++){
loop2 :
for (int j = 1; j<10; j++){
System.out.println(i + " * " + j + " = " + i*j);
if (j==9){
continue loop1;
}
}
}
->2 * 1 = 2
2 * 2 = 4
...
9 * 8 = 72
9 * 9 = 81
while(조건식){
코드1
}
int i = 0;
while(i<3){
System.out.println("i = " + i);
i++;
}
->i = 0
i = 1
i = 2
int i = 0;
while(i<3){
i++;
System.out.println("i = " + i);
}
->i = 1
i = 2
i = 3
만약 i가 3이 되자마자 반복을 중단하고 싶다면 for문에서 사용한것처럼 break문을 사용할 수 있다.
while문도 for문처럼 continue문을 사용할 수 있다.
int i = 0;
while(i<3){
i++;
if (i==1){
continue;
}
if (i==3){
break;
}
System.out.println("i = " + i);
}
->i = 2
위 코드에서 확인할 수 있듯이 i가 더해진 후 1이 되고 조건문에 걸려 continue가 되고 i는 2가 되었을 때는 출력, i는 3이 되었을 때는 조건문에 걸려 반복문이 break된 것을 알 수 있다.
이렇게 i가 3이 되자마자 반복을 중단하고 싶거나 조건식이 거짓이 되자마자 중단하고 싶다면 while문 안의 조건식 변수가 변경되고 바로 후에 if문으로 break를 걸어주면 조건식이 거짓이 되자마자 중단될 것이다.
do {
실행문
} while (조건식);
do {
System.out.println("do문 실행");
} while (false);
->do문 실행
타입[] 변수명 = new 기본형타입[배열의 크기];
타입[] 변수명 = {값1, 값2, ...};
//인덱스로 값에 접근
변수명[index] = 값;
int[] arr = {1,2,3};
System.out.println(arr[3]);
->Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
int[] arr = {1,2,3};
System.out.println(arr.length);
->3
int[][] arr = new int[2][3];
int[][] arr2 = {{0,0,0}, {0,0,0}};
(0,0) | (0,1) | (0,2) |
---|---|---|
(1,0) | (1,1) | (1,2) |
String[] str_arr = {"kim", "min", "je"};
for(int i : array){}
int[] arr1 = {1,2,3};
int[] arr2 = new int[5];
for(int i = 0; i < arr1.length; i++){
arr2[i] = arr1[i];
}
for(int i : arr2){
System.out.print(i + " ");
}
->1 2 3 0 0
int[] arr1 = {1,2,3};
int[] arr2 = java.util.Arrays.copyOf(arr1,5);
for(int i : arr2){
System.out.print(i + " ");
}
->1 2 3 0 0