3 분 소요

2022. 12. 26. 수업내용 정리

조건문, 반복문


IF 문

  • if문은 어떠한 조건이 만족하는가(혹은 만족하지 않는가)의 여부에 따라 실행하고자 하는 코드를 달리하고자 할 때 사용한다.
    1. if문:어떠한 조건에 대해서만 특정 코드(들)을 실행하고자 할 때 사용한다. 아래 코드에서 조건이 (True)일 때에만 실행할 코드를 실행한다.

      if(조건) {
       //실생할 코드   
      }
      



    2. if-else문: 어떠한 조건에 대해 그 조건이 참(true)인 경우와 거짓(false)인 경우를 분기하고자 할 때 사용한다.
      if(조건) {    
      // 조건이 참일 때 실행할 코드 
      } else { 
       // 조건이 거짓일 때 실행할 코드 
      }
      
  • if-else 문은 참일 때의 코드 블럭 혹은 거짓일 때의 코드 블럭 중 하나가 반드시 실행됨에 유의한다.


  1. if-else if문: 어떠한 조건에 대해 그 조건이 참(true)인 경우 및 거짓일 때에 다른 조건에 대해 참인 경우를 분기하고자 할 때 사용한다.
    if(조건1){
      // 조건1dl 참(true)일 떄 실행할 코드
     }else if(조건2) {
      // 조건1이 거짓()이고 조건2가 참(true)일 때 실행할 코드 
    }
    
  • 위 코드에서 조건1이 참(true)일 때에는 조건2를 확인하지 않는다. 즉, 두 조건 모두 참이라 하더라도 먼저 참인 것이 확인되는 조건의 코드 블럭 하나만 실행한다.
  • 위 코드는 else문을 포함하고 있지 않기 때문에, 반드시 모든 경우에 하나의 코드 블럭이 실행된다고 할 수 없다.
  • 아래와 같이 하나 이상의 else-if를 포함하는 if문을 작성할 수도 있다.
    if(조건1){ 
    // 조건1이 참일 때 실행할 코드 
    }else if(조건2) {
     // 조건1이 거짓이고 조건2가 참일 때 실행할 코드 
    } else if(조건3) { 
     // 조건1,2가 거짓이고 조건3이 참일 때 실행할 코드
    } else if(조건4) {
     // 조건1,2,3이 거짓이고 조건4가 참일 때 실행할 코드 
    } ....
    
  • 여러 개의 else-if문을 사용했다 하더라도 예외없이 가장 위의 조건부터 확인하며, 어떠한 조건이 참이라면, 그 아래에 있는 조건은 확인하지 않고, 실행도 하지 않는다.
  • 위 코드 또한 else문을 가지지 않음으로 그 어떤 코드 블럭도 실행되지 않을 가능성이 있다.


    1. if-else if-else문: if-else if문과 동일하나 그 어떤 조건도 참이지 않을 때 사용할 else문을 가지는 구조이다.
      if(조건1){
       // 조건1이 참일 때 실행할 코드
      }else if(조건2) {
       // 조건1이 거짓이고 조건2가 참일 때 실행할 코드
      } else if(조건3) {
       // 조건1,2가 거짓이고 조건3이 참일 때 실행할 코드
      } else if(조건4) {
       // 조건1,2,3이 거짓이고 조건4가 참일 때 실행할 코드
      } else {
      }
      ...
      
  • 단,else는 항상 마지막에 하나만 올 수 있고, else이 후에 else-if가 올 수 없다.
  • 위 코드는 if-else문과 마찬가지로, 하나의 코드 블럭이 실행되는 것이 보장되어 있다.






FOR 문

  • for문은 특정 동작(코드 블럭)을 반복하고자 할 때 사용한다.
    for(선언부; 조건부; 변수가감){ 
    // 반복할 코드 
    }
    
  • for문은 일반적으로 특정 정수형 변수의 값을 초기화하고 그 값을 가감하며 조건문의 해당 변수에 대한 조건이 참일 때 반복하게 하는 것이 일반적이다.
  • 선언부에서 선언된(혹은 초기화된) 변수의 값을 가감하며 조건부의 조건이 참일 때 아래 반복할 코드를 반복하여 실행한다.
  • 가령, 1부터 3까지의 정수를 출력하기 위해 아래와 같이 for문을 작성할 수 있다.
  • 변수 가감에는 전/후위 증감 연산자 혹은 복합 대입 연산자를 사용할 수 있다.
  • 또한 변수 가감은 별도의 구문으로 인식됨으로 전위 증감후위 증감에 따른 반복에 차이가 없다.
    for(int i = 1; i<=3; i++){
      System.out.println(i);
    }
    
  1. 변수 i가 1로 선언 및 초기화된다.
  2. 조건부를 확인한다. 이 때 조건부의 조건은 i <= 3인데 여기서 i가 1임으로 참()이 됨으로 for 코드 블럭을 1회 실행한다.
  3. 변수를 가감한다. 위 코드에서 가감 코드는 i++임으로 i가 2가 된다.
  4. 조건부를 확인한다. 이 떄 조건부의 조건은 i <= 3이고 여기서 i가 2임으로 참()이 됨으로 for 코드 블럭을 1회 실행한다.(2 출력)
  5. 변수를 가감한다. 위 코드에서 가감 코드는 i++임으로 i가 3이 된다.
  6. 조건부를 확인한다. 이 때 조건부의 조건은 i <= 3이고 여기서 i가 3임으로 참()이 됨으로 for 코드 블럭을 1회 실행한다.(3출력)
  7. 변수를 가감한다. 위 코드에서 가감 코드는 i++임으로 i가 4가 된다.
  8. 조건부를 확인한다. 이 때 조건부의 조건은 i <= 3이고 여기서 i가 4임으로 거짓()이 됨으로 for문을 빠져나온다. (for문 종료)
  • break는 현재 실행 중인 가장 가까운 for문 등을 종료시키기 위해 사용하는 키워드이다.
  • continue는 현재 실행 중인 반복 사이클을 생략하고 다음 사이클로 넘어가기 위해 사용하는 키워드이다.

향상된 FOR문(Enhanced For)

  • 향상된 for문은 일반 for문과 달리 증감에 사용되는 변수(주로 i)를 사용하지 않고 배열을 반복할 수 있어 ArrayIndexOutOfRangeException 등의 예외로 부터 벗어날 수 있는 이점이 있다.
  • 마찬가지로, 용법이 일반 for문에 비해 사용하기 쉬운 이점이 있다.
  • 단, 증감에 사용되는 변수(i)를 직접 사용해야 할 때에는 향상된 for문을 사용하지 못한다.
  • 일반 for문과 마찬가지로 breakcontinue 키워드를 이용할 수 있다.

    int[] odds = {1, 3, 5, 7, 9};
    for (int i = 0; i < odds.length; i++) {
        System.out.println(odds[i]);
    }
    

    위 일반 for문을 아래와 같이 향상된 for문으로 변경할 수 있다.

    int[] odds = {1, 3, 5, 7, 9};
    for (int odd : odds) {
        System.out.println(odd);
    }
    

    위 코드에서는 odds 정수 배열이 가지고 있는 정수인 요소 하나하나를 순서대로 정수인 변수 odd에 대입하여 반복하게 된다.

태그:

카테고리:

업데이트:

댓글남기기