swimminginthecode DIVE!

BACK/JAVA Basic

JAVA 02

dazz6 2024. 3. 29. 18:24
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로 분기함

'BACK > JAVA Basic' 카테고리의 다른 글

JAVA 06  (0) 2024.04.04
JAVA 05  (0) 2024.04.03
JAVA 04  (0) 2024.04.02
JAVA 03  (0) 2024.04.01
JAVA 01  (0) 2024.03.28