ss__jae2
타닥타닥 IT
ss__jae2
전체 방문자
오늘
어제

Github

  • 타닥타닥 IT (179)
    • 웹개발 (86)
      • JAVA (23)
      • DBMS (6)
      • HTML (9)
      • CSS (7)
      • JavaScript (12)
      • JSP (14)
      • Spring (15)
    • FrontEnd (63)
      • HTML (5)
      • CSS (12)
      • JavaScript (16)
      • React.js (14)
      • Node.js (16)
    • API (5)
    • SQLD (21)
      • SQLD (1)
      • 1과목 데이터 모델링의 이해 (11)
      • 2과목 SQL 기본 및 활용 (9)
    • CS Study (4)
      • 네트워크 (4)

공지사항

최근 댓글

최근 글

반응형
hELLO · Designed By 정상우.
ss__jae2

타닥타닥 IT

웹개발/JAVA

[JAVA] 제어문( 조건문, 반복문 )

2022. 1. 12. 23:03
반응형

* 지금까지 코드의 실행 흐름은 무조건 위에서 아래로 한 문장씩 순차적으로 진행되었지만, 때로는 조건에 따라 문장을 건너뛰고, 때로는 같은 문장을 반복해서 수행해야 할 때가 있다. 이처럼 프로그램의 흐름( flow )을 바꾸고 역할을 하는 문장들을 제어문이라고 한다.

 

* 조건문은 조건에 따라 다른 문장이 수행되도록 하고, 반복문은 특정 문장들을 반복해서 수행한다.

1. 조건문 if( if, if-else, if-else if-else ), switch

- 조건문은 조건식과 문장을 포함하는 블록 {}으로 구성되어 있으며, 연산 결과에 따라 실행할 문장이 달라져서 프로그램의 실행 흐름을 변경할 수 있다.

- 조건문은 if문과 swith문 두 가지가 있으며 주로 if문이 많이 사용된다.

  • if문
    if문은 가장 기본적인 조건문이며, 조건식과 괄호 {}로 이루어져 있다.

    if ( 조건식 ) {
             // 조건식이 참( true ) 일 때 수행될 문장들을 적는다.
    }
    ==> 만일 if 조건식이 참이면 괄호 {}안의 문장들을 수행해라.
    • 조건식
      - 조건식이란 참과 거짓을 판명할 수 있는 식
      - if문에 사용되는 조건식은 일반적으로 비교연산자와 논리 연산자로 구성된다.
      - 조건식을 작성할 때 실수하기 쉬운 것이 등가비교연산자( == ) 대신 대입 연산자( = )를 사용하는 것이다.
    • 블록 {}
      - 괄호 {}를 이용해서 여러 문장을 하나의 단위로 묶을 수 있는데 이것을 블록이라 한다.
      - 블록은 { 로 시작해서 } 로 끝나는데 } 다음에 ; 를 붙이지 않는 것을 주의해야 한다.
  • if-else

    if ( 조건식 ) {
             // 조건식이 참 ( true ) 일 때 수행될 문장들
    } else {
             // 조건식이 거짓 ( false ) 일 때 수행될 문장들
    }
  • if-else if

    if ( 조건식 1 ) {
             // 조건식 1이 참 ( true ) 일 때 수행될 문장들
    } else if ( 조건식 2 ) {
             // 조건식 1이 거짓 ( false )이고 조건식 2가 참일 때 수행될 문장들
    } else if ( 조건식 3 ) {
             // 조건식 1, 2가 거짓 ( false )이고 조건식 3이 참 ( true ) 일 때 수행될 문장들
    } else {
             // 조건식 1, 2, 3 ... 이 모두 거짓 ( false ) 일 때 수행될 문장들
    }
  • 중첩 if문

    if ( 조건식 1 ) {
             // 조건식 1이 참 ( true ) 일 때 수행될 문장들
             if ( 조건식 2 ) {
                     // 조건식 1, 2가 모두 참 ( true ) 일 때 수행될 문장들
             } else {
                     // 조건식 1은 참 ( true )인데, 조건식 2가 거짓 ( false ) 일 때 수행될 문장들
             }
    } else {
             // 조건식 1이 거짓 ( false )일 때 수행될 문장들
    }
  • switch
    - if 문은 조건식의 결과가 참과 거짓 두가지 밖에 없기 때문에 경우의 수가 많아질수록 else if를 계속 추가해야 하며 조건식이 많아져서 복잡해지고, 여러 개의 조건식을 계산하므로 처리시간도 많이 걸린다.
    - 이러한 if문과 달리 switch문은 단 하나의 표현식으로 많은 경우의 수를 처리할 수 있고 표현도 간결하므로 알아보기 쉽다.

    switch ( 표현식 ) {
             case 값1 :
                     // 표현식의 결과가 값 1과 같은 경우 수행될 문장
                     break;
             case 값2 :
                     // 표현식의 결과가 값 2와 같은 경우 수행될 문장
                     break;
             default :
                     // 표현식의 결과가 일치하는 case문이 없을 때 수행될 문장들
    }
         ① 표현식을 계산한다.
         ② 표현식의 결과와 일치하는 case문으로 이동한다.
         ③ 이후의 문장들을 수행한다.
         ④ break문이나 switch문의 끝을 만나면 switch문 전체를 빠져나간다.

2. 반복문 for, while, do-while

- 반복문은 어떤 작업이 반복적으로 수행되도록 할 때 사용되며, 반복문의 종류는 for문, while문 그리고 while문의 변형인 do-while문이 있다.

- for문이나 while문에 속한 문장은 조건에 따라 단 한 번도 실행이 안 될 수도 있으나, do-while은 최소한 한 번의 수행이 보장된다.

  • for문
    - for문은 반복 횟수를 알고 있을 때 적합하다.

    for ( 초기식; 조건식; 증감식 ) {
             // 조건식이 참일 때 반복 수행할 문장
    }

    for ( int i = 0; i <= 5; i++ ) {
             // 6번 반복 (0 1 2 3 4 5)
    }
         ① 초기식
             - 반복문에 사용될 변수를 초기화하는 부분이며 처음에 한번만 수행한다.
         ② 조건식
             - 조건식의 값이 참이면 반복을 계속하고, 거짓이면 반복을 중단하고 for문을 벗어난다.
             - 조건식을 잘못 작성하면 블록 {} 내의 문장이 한번도 수행되지 않거나 영원히 반복되는
               무한루프( infinite loop )에 빠지기 쉬우므로 주의해야 한다.
         ③ 증감식
             - 반복문을 제어하는 변수의 값을 증가 또는 감소시키는 식이다.
             - 매 반복마다 변수의 값이 증감식에 의해서 점진적으로 변하다가 결국 조건식이 false가 되어
               for문을 벗어나게 된다

    * 향상된 for문( enhanced for statement )
    - 배열과 컬렉션에 저장된 요소에 접근 할 때 기존보다 편리한 방법으로 처리할 수 있도록 for문의 새로운 문법이 있는데 이를 향상된 for문이라고 한다.

    for ( 타입 변수명 : 배열 또는 컬렉션 ) {
             //반복할 문장
    }
    - 위의 문장에서 타입은 배열 또는 컬렉션의 요소의 타입이어야 한다.
    - 배열 또는 컬렉션에 저장된 값이 매 반복마다 하나씩 순서대로 읽혀서 변수에 저장된다.
  • while문
    - for문에 비해 while문의 구조는 간단하며 if문처럼 조건식과 블록만으로 이루어져 있다.
    - while문은 조건식이 참인동안, 즉 조건식이 거짓이 될 때까지 블록 내의 문장을 반복한다.

    while ( 조건식 ) {
             // 반복 수행할 문장
    }
  • do-while문

    do {
             // 조건식의 결과가 참일 때 수행될 문장들을 적는다.
             // 단, 한번은 무조건 실행된다.
    } while( 조건식 );

    - do-while문은 while문의 변형으로 기본적인 구조는 while문과 같으나 조건식과 블록의 순서를 바꿔놓은 것이다.
    - 즉, 블록을 먼저 실행한 후에 조건식을 평가한다.( 무조건 한 번은 실행된다. )
  • break
    - break문은 자신이 포함된 가장 가까운 반복문을 벗어나며 주로 if문과 함께 사용되어 특정 조건을 만족하면 반복문을 벗어나도록 하게 하는 예약어이다.
  • continue
    - continue문은 반복문 내에서만 사용될 수 있으며, 반복이 진행되는 도중에 continue를 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다.
    - for문의 경우는 증감식으로, while문과 do-while문의 경우는 조건식으로 넘어간다.



반응형
저작자표시 (새창열림)

'웹개발 > JAVA' 카테고리의 다른 글

[JAVA] 객체지향 언어, 클래스와 객체  (0) 2022.01.16
[JAVA] 배열( array )  (0) 2022.01.14
[JAVA] 연산자( Operator )  (2) 2022.01.08
[JAVA] 입력메서드( Scanner ), 출력메서드( Print )  (0) 2022.01.07
[JAVA] 변수 및 형변환( casting )  (1) 2022.01.06
    '웹개발/JAVA' 카테고리의 다른 글
    • [JAVA] 객체지향 언어, 클래스와 객체
    • [JAVA] 배열( array )
    • [JAVA] 연산자( Operator )
    • [JAVA] 입력메서드( Scanner ), 출력메서드( Print )
    ss__jae2
    ss__jae2

    티스토리툴바