if문을 활용하여 문제 풀어 보기
입장료
8세 이하, 65세 이상 무료
9세 이상, 20세 미만 3,000원
20세 이상, 65세 미만 5,000원
age = 10;
int total = 0;
if (9 <= age && age < 20) {
total = 3000;
} else if (20 <= age && age < 65) {
total = 5000;
}
System.out.println(total + "원");
console
3000원
-> 나이를 10살이라고 가정하여 age에 10을 넣어 주었음
switch문을 활용하여 문제 풀어 보기
키보드로 년도와 월을 입력받아 해당 년, 월의 날수 출력
int year, month, days = 28;
String msg = "평년";
Scanner sc = new Scanner(System.in);
System.out.print("연도 입력: ");
year = sc.nextInt();
System.out.print("월 입력: ");
month = sc.nextInt();
// 입력 자료 오류 검사
if(month < 1 || month > 12) {
System.out.println("1 - 12 사이의 값을 입력해 주세요");
System.exit(0);
}
// 윤년이면 2월에 29일, 평년이면 28일을 부여하기 위해 연도 체크하기
// 2월 날짜를 위한 if문
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { // 4의 배수이자 100의 배수가 아니거나, 4의 배수이자 400의 배수임을 확인
days = 29;
msg = "윤년";
}
// 2월을 제외한 월의 날짜를 위한 switch문
switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
}
System.out.println(year + "년 " + month + "월은 " + days + "일(" + msg + ")입니다.");
}
for문
for (초기치; 조건; 증감치) {반복 처리 대상}
반복 횟수가 정확히 정해져 있을 경우 주로 사용
for문과 if문을 활용하여 문제 풀어 보기
1부터 100 사이의 정수 중 3의 배수이면서 5의 배수인 것의 갯수와 합을 출력
int a = 0;
int b = 0;
for (int i = 1; i < 101; i++) {
if (i % 3 == 0 && i % 5 == 0) {
a += 1;
b += i;
}
}
System.out.println("갯수 : " + a + ", 합 : " + b);
반복문에서의 continue와 break
종류 | 설명 |
continue | 명령 아래의 문장을 무시하고 대응하는 반복문으로 올라감 |
break | 명령을 포함하고 있는 반복문을 빠져나옴 |
for문을 사용하여 무한 루프 만들기
int a = 0;
for (;;) {
a++;
System.out.println("infinity");
console
infinity
infinity
infinity
.
.
.
-> for문에서 조건이 비어 있기 때문에 무한 반복이 실행됨
for문을 사용하여 만든 무한 루프에서 빠져나오는 조건 걸기
int a = 0;
for (;;) {
a++;
System.out.println("infinity");
if (a == 5) {
break;
}
}
console
infinity
infinity
infinity
infinity
infinity
-> if ~ break를 사용하여 a의 값이 5가 되었을 때 명령을 포함하는 반복문을 빠져나왔으므로 값이 5번 출력되었음
for문 앞에 라벨 달기
label을 작성한 for문 진행 중에 if문을 사용하여 continue나 break 를 삽입하면 해당 label로 분기할 수 있음
nice: for (int i = 1; i <= 3; ii++) {
good: for (int j = 1; j <= 5; j++) {
System.out.print(i + " " + j + " ");
if (j == 3) {
continue nice;
}
}
}
console
4 1 4 2 4 3 4 1 4 2 4 3 4 1 4 2 4 3 5
-> if문 안에서 j의 값이 3이 될 때 nice label로 분기함