ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • if - else if 문
    Java/조건문 & 반복문 2020. 10. 22. 14:14

     

     

     

     

    if - else 문은 두 가지 경우 중 하나가 수행되는 구조이다. 그러면 수행되어야 하는, 처리해야될 경우의 수가 세가지 이상일 때에는 어떻게 할 수 있을 까? 바로 if - else if 문을 사용하면 된다.

     

    if ( 조건식 1 ) {

       // 조건식 1의 연산결과가 참일 때 수행될 문장을 정의, 구현한다.

    } else if ( 조건식 2 ) {

      // 조건식 2의 연산결과가 참일 때 수행될 문장을 정의, 구현한다.

    } else if ( 조건식 3 ) {

      // 조건식 3의 연산결과가 참일 때 수행될 문장을 정의, 구현한다.

    } else {  //마지막은 보통 else 블럭으로 끝나고, else 블럭은 생략이 가능하다!

      // 위의 조건들에서 하나도 만족하지 않을 때 수행될 문장을 정의, 구현한다.

    }

     

     

     

    if - else if 문은 결과가 참인 조건식을 만나 때 까지 첫 번째 조건식부터 순서대로 평가한다. 만약 첫 번재 조건식에서 거짓일 경우 두 번째 조건식으로 넘어가게 된다. 계속해서 조건식에 따른 결과에 따라 참인 조건식을 만나게 되면 해당 { }블럭의 문장들이 수행된다. 그리고 조건에 해당하는 경우가 없을 경우에는 else 문이 실행되어 if - else if 문을 빠져나오게 된다.

     

     

    아래의 학점을 출력하는 예제를 보고 if - else if 문을 공부해 보자.

     

    각 조건문 안에서 결과를 출력

     

    위의 코드에서는 각 조건식 안에 직접 System.out.println( ), System.out.printf( ); 등을 통해 조건식에 대해 수행될 문장을 출력해도 된다. 하지만 계속해서 학점에 대한 출력문구가 반복되기 때문에 else 문이 끝난다음에 한 번만 작성해도 동일하게 score를 가져와서 학점을 계산해주는 결과를 출력해주는 코드로 바꿀 수 있다.

     

    전체 코드 > 

    < else 문이 끝난 다음 결과를 출력 >

     

     

    여기서 한 가지 눈여겨 봐야할 것이 있다.

    조건식에서 점수가 90점 미만이고, 80점 이상인 사람에게 'B'학점을 주는 조건이라면,

    아래의 코드에서처럼 조건식이 '80 <= score  &&  score < 90' 이 되어야 한다.

     

    그런데도 조건식에서 'score >= 80' 으로 쓸 수 있는 것은

    첫 번째 조건식에서 'score >= 90'이 거짓이기 때문에 'score < 90'이 참이라는 뜻이므로 두 번째 조건식에서

    'scroe < 90'이라는 조건을 중복해서 확인할 필요가 없다. --> < else 문이 끝난 다음 결과를 출력 > 의 그림을 참고하자.

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    [참고 도서 Java의 정석_기초편] http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788994492049&orderClick=LEa&Kc=

Designed by Tistory.