Feel It First

[Do it! 자바 프로그래밍 입문] 04 제어 흐름 이해하기 본문

IT

[Do it! 자바 프로그래밍 입문] 04 제어 흐름 이해하기

csongin 2022. 5. 22. 17:01
728x90
조건문
반복문
중첩된 반복문
continue 문
break 문

조건문

주어진 조건에 따라 수행문이 실행되도록 하는 것

 

if 문

if(age >= 8) { // 조건식 
	System.out.println("학교에 다닙니다."); // 수행문
}

if - else 문

if(age >= 8) { // 조건식 
	System.out.println("학교에 다닙니다."); // 수행문1
}
else {
	System.out.println("학교에 다니지 않습니다."); // 수행문2
}

else if 문

하나의 경우에 조건이 여러 개에 해당하는 경우

        int age = 9;

        int charge;
        
        if(age < 8){
            charge = 1000; 
            System.out.println("취학 전 아동입니다.");
        }
        else if(age < 14){
            charge = 2000;
            System.out.println("초등학생 입니다.");
        }
        else if(age < 20){
            charge = 2500;
            System.out.println("중, 고등학생 입니다.");
        }
        else{
            charge = 3000;
            System.out.println("일반인 입니다.");
        } 
        
        System.out.println("입장료는 " + charge + "원입니다.");
    }
}

조건문과 조건 연산자

간단한 if-else 조건문은 조건 연산자로 구현할 수 있음

if(a > b){ 
	max = a;
}
else{
	max = b;
}
// 조건문
max = (a > b) ? a : b; // 조건 연산자

switch-case 문

조건식의 결과가 정수 또는 문자열의 값이고 그 값에 따라 수행문이 결정될 때 if-else 문을 대신하여 switch-case문을 사용할 수 있습니다.

        int ranking = 1;
        
        char medalColor;
        
        switch(ranking){
            case 1: medalColor = 'G';
                break;
            case 2: medalColor = 'S';
                break;
            case 3: medalColor = 'B';
                break;
            default:
                medalColor = 'A';
        }
        System.out.println(ranking + "등 메달의 색깔은 " + medalColor + " 입니다.");

switch-case 문에 문자열 사용하기

	String medal = "Gold";
        
        switch(medal) {
            case "Gold":
                System.out.println("금메달 입니다.");
                break;
            case "Silver":
                System.out.println("은메달 입니다.");
                break;
            case "Bronze":
                System.out.println("동메달 입니다.");
                break;
            default:
                System.out.println("메달이 없습니다.");
                break;
        }

반복문

주어진 조건이 만족할 때까지 수행문을 반복 수행함

while, do-while, for 문이 있음

조건의 만족과 반복 가능 여부에 대한 정확한 코딩을 해야 함

 

while 문

조건식이 참인 동안 수행문을 반복해서 수행

        int num = 1;

        int sum = 0;
        
        while(num <= 10){ // num이 10보다 같거나 작을 동안 수행문 반복
            sum += num; // sum에 num의 값을 더하여 저장
            num++; // num의 숫자를 1씩 증가
        }
        System.out.println("1부터 10까지의 합은 " + sum + "입니다.");

do - while 문

수행문을 한번은 수행하고 그 이후부터 조건식이 참일 동안 반복 수행

int num = 1;
int sum = 0;

do{
	sum += num;
    num++;
}
while(num <= 0);
System.out.println(sum); // 1 출력

for 문

가장 많이 사용되는 반복문

주로 조건이 횟수인 경우에 사용

초기화식, 조건식, 증감식을 한번에 사용

int sum = 0;

for(int i = 0; i <= 10; i++){ // 초기화, 조건식, 증감식
	sum += i;
}
System.out.println(sum); // 55 출력

중첩된 반복문

반복문 내부에서 반복문이 재사용됨

// 구구단 예시
for(int dan = 2; dan <=9; dan++){
	for(int times = 1; times <=9; times++){
    System.out.println(dan + "X" + times + "=" + dan * times);
    }
}
/*
2X1=2
2X2=4
2X3=6
2X4=8
.
.
.
.
.
.
9X9=81
*/

continue 문

반복문과 함께 쓰이며, 반복문 내부에서 continue 문을 만나면 이후 반복되는 부분을 수행하지 않고 조건식이나 증감식을 수행함

// continue 문을 사용하여 구구단 홀수만 출력 예시
for(int dan = 2; dan <=9; dan++){
	for(int times = 1; times <=9; times++){
    if(dan % 2 == 0);
    	continue;
    System.out.println(dan + "X" + times + "=" + dan * times);
    }
}
/*
3X1=3
3X2=6
.
.
5X1=5
5X2=10
.
.
.
9X9=81
*/

break 문

반복문에서 break 문을 만나면 더 이상 수행하지 않고 반복문을 빠져나옴

중첩된 반복문 내부에 있는 경우 가장 가까운 반복문 하나만 빠져나옴

int sum = 0;
int num = 0;
    
for(num = 0; ; num++){
	sum += num;
	if(sum >= 100) 
		break;
}
        
System.out.println("num : " + num); // 14
System.out.println("sum : " + sum); // 105

 

반응형
Comments