코드의 실행흐름은 무조건 위에서 아래로 한 문장씩 진행된다.

하지만 때로는 조건에 따라 문장을 건너뛰거나, 같은 문장을 반복해서 수행해야할 때가 있다.

이럴때 사용하는 프로그램의 흐름을 바꾸는 역할을 하는 문장을 제어문이라고한다,

 

제어문에는 조건문과 반복문이 있다.

 

조건문 -  if, switch

 

1. if문

class HelloWorld {
    public static void main(String[] args) {
        if (5 > 3){
            System.out.println("hello world");
        }
    }
}

가장 기본적인 조건문.

조건식 + {} 괄호 로 구성되어 있다.

 

if (5 > 3) // 가능
if (a == 1) // 가능
if (1) // 에러
if (int b = 1) // 에러
if ("hi") // 에러

파이썬, js와는 다르게 조건식의 결과는 반드시 boolean 형식이어야한다.

보통 비교연산자 혹은 논리연산자로 구성된다.

 

class HelloWorld {
    public static void main(String[] args) {
        char grade = 'A';
        
        if(grade == 'A') System.out.println("GRADE : A");
        else if (grade == 'B') System.out.println("GRADE : B");
        else System.out.println("GRADE : F");
    }
}

만약 블럭 내의 문장이 하나일 경우, {} 괄호를 생략할 수 있다.

if - else, if - else if  문 등으로 조건을 추가할 수 있다.

 

2. switch문

if 문의 조건식은 결과가 참 혹은 거짓 두가지 밖에 없다.

경우의 수가 많아질 수록 조건식이 많아지고 복잡해진다.

class HelloWorld {
    public static void main(String[] args) {
        char grade = 'A';
        
        switch (grade){
            case 'A' :
                System.out.println("GRADE : A");
                break;
            case 'B' :
                System.out.println("GRADE : B");
                break;
            default :
                System.out.println("GRADE : F");
        }
    }
}

switch문은 단 하나의 조건식을 제시하고 그 결과와 일치하는 case 문으로 이동한다.

이동한 case문 아래의 문장들을 수행하며, break문을 만나면 전체 switch 문을 빠져나가게 된다.

 

    final int A = 5;
    int a = 1;
    
    case 'A': // 가능
    case  1: // 가능
    case "hello": // 가능
    
    case A // 가능
    case a // 불가능
    case 1.0 // 불가능

switch문의 조건식은 결과값이 반드시 정수 또는 문자열이어야한다.

case문의 값은 정수 상수 혹은 문자열 리터럴이어야만한다. (변수, 실수 불가능)

 

반복문 - for, while, do-while

1. for문

반복 횟수를 알고 있을때 적합.

 

for문의 구조와 수행순서

for (초기화; 조건식; 증감식){
    수행문
}
  1. 초기화
  2. 조건식
  3. 수행문
  4. 증감식
  5. 2-4 반복
for(;;){
	// 무한 반복문
}
       
int[] arr = {1,2,3,4,5};

for (int n : arr){
	System.out.print(n);
	//12345
}

for(;;)시 무한 반복문

for ( 타입 변수 : 배열 또는 컬렉션) -> 파이썬 in처럼 동작

배열의 모든 요소를 한 번씩 가져옴

 

2. while 문

class HelloWorld {
    public static void main(String[] args) {
        int i = 0;
        while (i < 5){
            System.out.println("loop");
            i ++;
        }
        
        while (true) //무한반복문
        
	//do - while문
        do {
            System.out.println("loop");
            i ++;
        }
        while (i < 5);
    }
}

조건식 + {} 구조

조건식이 참이면 {}안의 문장을 반복한다.

 

for문과 달리 조건식을 생략할 수 없다.

무한 반복문을 만드려면 whilie(true)를 사용해야한다.

 

3. do-while 문

while문과 똑같은데 do 뒤의 문장 먼저 시작하고 조건문 확인

최소 1번은 실행을 보장하는 반복문

 

break : 가장 가까운 반복문을 벗어난다.

continue : 다음 반복으로 넘어간다. (증감식, 다음 조건식)

 

 

 

+ Recent posts