강좌 Course 1. Part 2. ch7 5강~10강 요약
// 형태
if (조건){
문장; // 참일 때
} else {
문장; // 거짓일 때
}
// 예시
int a = 100;
int b = 50;
if (a!=b){
a +=b;
System.out.println(a);
} else {
a-=b;
System.out.println(a);
}
if - else 는 if 뒤에 온 조건이 참이면 if 블록을, 만일 거짓이면 else 블록을 실행한다. else일 때 실행할 내용이 없으면 else 부분을 생략해도 된다.
// 예시
switch (수식){
case 상수 1:
문장 1;
break;
case 상수 2:
문장 2;
break;
...
default:
문장 n;
}
// 예시
String day = "Tuesday";
switch (day){
case "Sunday" :
System.out.println("BASEBALL");
break;
case "Monday" :
System.out.println("BASKETBALL");
break;
case "Tuesday" :
System.out.println("SWIMMING");
break;
default:
System.out.println("BREATHE");
}
switch-case는 if-else에 비해 사용이 제한적이다.
어떤 수식이 주어졌을 때, 위에서부터 아래로 차례대로 일치하는 case를 찾아 내려가며, 일치하는 case가 있으면 내려가는 것을 멈추고 그 case의 문장을 실행한다. 따라서 넓은 범위에서 좁은 범위로 case를 작성해야 하며, 주어진 수식과 일치하는 case가 없으면 default의 문장을 실행한다.
break; 는 break가 나온 시점에서 실행을 멈추고, 해당 블록문에서 나오게 한다. switch-case에서 break는 케이스 간을 구분하는 역할을 해준다. 만약 "Tuesday" 케이스 안에 break가 없다면, 해당 케이스 다음에 오는 default 시의 실행문도 함께 실행될 것이다.
반대로 continue라는 명령어도 있는데, continue는 break와 반대로 쓰인다. continue가 나오면 그 시점에서 뒤에 오는 실행문은 무시하고 루프의 다음 iteration으로 넘어가거나 하는 식으로 사용된다.
for(초기식; 조건식; 증감식){
반복할 문장;
}
// 예시
for (int i=1;i<=10;i++){
System.out.println(i);
}
for문은 주어진 조건이 참인 횟수만큼 반복할 문장을 반복한다. for문을 쓰려면, 실행한 횟수를 저장할 변수, 실행할 횟수의 범위를 정해주는 조건식, 그리고 실행 간격을 정해주는 증감식 세 가지가 필요하다.
forEach(변수:컬렉션){
반복할 문장;
}
// 예시
String[] b = {"A","P","P","L","E"};
for (String str:b){
System.out.println(str);
}
특정 문장을 반복할 배열이 주어졌더라도 따로 변수를 설정하고 범위를 정해주는 것이 번거로울 수 있다. 이러한 for문을 조금 더 간편하게 바꾼 것이 forEach문인데, 배열이나 컬렉션의 각 원소를 변수에 할당하고 iterate한다고 생각하면 될 것 같다.
// 형태
초기식;
while (조건식) {
반복할 문장;
증감식;
}
// 예시
int[] num = {1,2,3,4,5,6,7,8,9,10};
int i = 0;
while (i<num.length){
System.out.println(num[i]);
i++;
}
while문은 조건식이 참인 동안 블록 내의 문장을 반복하는 반복문이다. 만일 조건식이 거짓이 되지 않으면 끝나지 않는 무한루프가 될 수 있다.
처음부터 조건식의 결과가 거짓일 경우, while문 안의 내용을 아예 실행하지 않는다.
// 형태
초기식;
do {
반복할 문장;
증감식;
} while (조건식);
// 예시
int j = 0;
do {
System.out.println(j);
j++;
} while (j < 11);
do-while문은 while 문과 달리 실행할 문장을 먼저 적고, 조건을 맨 마지막에 적는다. 실행 후 조건을 확인하기 때문에 명령을 최소 1번은 실행하게 된다.
int[] num = {1,2,3,4,5,6,7,8,9};
// for문
for (int i=1;i<=num.length;i++){
for (int j=1;j<num.length;j++){
System.out.print("i = "+i+", j = "+j+", i*j = "+i*j);
}
System.out.println("----");
}
// forEach문
forEach(int i:num){
forEach(int j:num){
System.out.print("i = "+i+", j = "+j+", i*j = "+i*j);
}
System.out.println("----");
}