조건문 / 반복문

승준·2024년 4월 28일

Java

목록 보기
4/4
post-thumbnail

Java의 조건문과 반복문


💁 조건문 / 반복문

조건문과 반복문은 프로그램의 흐름을 제어하는 제어문이다.


🙋 제어문 종류


⭐️ 조건문

1. if문

if 문의 중괄호 블록은 여러개의 실행문을 하나로 묶기 위해 작성된다, if 뒤에 나오는 조건식이 true면 중괄호 블록 안의 실행문을 실행한다.

if( 조건식 ) {
	실행문;
    실행문;
}

2. if-else문

if문의 조건식이 true면 if문의 블록이 실행되고, 조건식이 false면 else 블록이 실행된다. 조건식의 결과에 따라 이 두 개의 블록 중 어느 한 블록의 내용만 실행하고 전체 if문을 벗어나게 된다.

int score = 95;

if (score > 90){ // 조건식 (score > 90)이 참이면 if 블록 실행 
    System.out.println("점수가 90보다 크다");
    System.out.println("A 입니다"); 
}
else { // if의 조건식(score > 90)이 거짓이면 else 블록 실행 
    System.out.println("점수가 90보다 작습니다");
    System.out.println("B 입니다"); 
}

3. if-else if-else문

조건문이 여러개인 if문도 가능하다. 처음 if문의 조건식이 false일 경우, 다른 조건식의 결과에 따라 실행 블록을 선택할 수도 있는데 if문 끝에 else if문을 붙이면 된다.

else if문은 수의 제한이 없다.

else if문 뒤에는 else 블록을 추가할 수 있는데 위에 있는 모든 조건식이 false인 경우에 else의 블록을 실행한다.

int score = 95;

if (score > 90){ // 조건식 (score > 90)이 참이면 if 블록 실행 
    System.out.println("점수가 90보다 크다");
    System.out.println("A 입니다"); 
}
else if(score>= 80) { // 위 if문 조건에는 부합하지 않지만 else if문에는 부합하는 경우 
    System.out.println("점수가 80~89입니다");
    System.out.println("B 입니다"); 
}
else if(score>= 70) {
    System.out.println("점수가 70~79입니다");
    System.out.println("C 입니다"); 
}
else { // 위 조건 중 하나도 해당하지 않는다면, score 가 70 이하라면 
    System.out.println("점수가 70보다 작습니다");
    System.out.println("D 입니다"); 
}

4. 중첩 if문

if문 안에 또다른 if문을 사용할 수 있다. 이것을 중첩 if문이라고 부른다. 중첩의 단계는 제한이 없고 if문 뿐만 아니라 제어문의 경우 다 중첩할 수 있다.

int score = 95;

if (score > 90){ 
    if (score >= 95){
    System.out.println("점수가 95이거나 그보다 크다");
    System.out.println("A+ 입니다");
    }else{
    System.out.println("점수가 90보다 크다");
    System.out.println("A 입니다"); } 
}

5. switch문

switch문도 if문과 같은 조건제어문에 해당한다.

switch문은 변수가 어떤 값을 갖느냐에 따라 실행문이 선택된다.

switch문은 괄호 안의 값과 동일한 값을 갖는 case로 가서 실행문을 실행시킨다. 괄호 안의 값과 동일한 값을 갖는 case가 없으면 default로 가서 실행문을 시킨다. (default는 생략가능)

case에는 숫자도 가능하고 문자, 문자열도 가능하다.

int num = (int)(Math.random()*6)+1; 

switch(num){
    case 1 : // num의 값이 1인 경우, 
        System.out.println("1이 나왔습니다");
        break; 

    case 2 : 
        System.out.println("2가 나왔습니다");
        break; 

    case 3 : 
        System.out.println("3이 나왔습니다");
        break;

    case 4 : 
        System.out.println("4가 나왔습니다");
        break; 

    case 5 : 
        System.out.println("5가 나왔습니다");
        break; 

    default: //default를 안쓰면 아무것도 출력안됨 
        System.out.println("6이 나왔습니다"); 
        break; 
}

⭐️ 반복문

1. for문

for문은 정해진 횟수만큼 반복해야할 때 사용한다.

for (초기화식 ; 조건식 ; 증감식) { 실행문 }

int sum = 0 ; 

for (int i = 1; i <= 100; i++){ // i가 1부터 100일때까지 중괄호 블록의 실행문을 반복한다. 
    sum += i ;
}
System.out.println(sum); 

2.while문

for문이 정해진 횟수만큼 반복한다면 while문은 조건식이 true인 경우 계속해서 반복한다.

조건식에는 비교 or 논리연산식이 주로 오는데, 조건식이 false가 되면 반복행위를 멈추고 while문을 종료한다.

int i = 1; 
while (i>0) {
        System.out.println(i);  // i는 항상 0보다 크기때문에 무한루프를 돌게된다. 
        i++; 
} 

// 무한루프를 빠져나오기 위한 코드 추가 
int i = 1; 
while (i>0) {
    if(i==10) {
        System.out.println(i);
        System.out.println("Finished!"); 
        break; // while문을 빠져나오기 위한 break 추가 
    }
    System.out.println(i);
    i++;  
}

3.do-while문

do-while문은 조건식에 의해 반복 실행된다는 점에서는 while문과 동일하다.

while문은 시작할 때부터 조건식을 검사하여 블록 내부를 실행할지 결정하지만 경우에 따라서는 블록 내부의 실행문을 우선 실행시키고 실행 결과에 따라서 반복 실행을 계속할지 결정하는 경우도 생긴다. → 이럴 때 do-while문을 사용할 수 있다. 즉 , do-while문은 무조건 한 번 이상 실행되는 반복문이다.

int i = 10; 

do {
    System.out.println(i);
    i--; 
} while(i > 1); 

profile
열심히 삽질 하는 공간

0개의 댓글