ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA 조건문과 반복문에 대해 알아보자
    JAVA 2023. 3. 19. 04:35

    조건문과 반복문은 자바뿐만 아니라 많은 언어에서 비슷한 형식을 가지고 있다. 다른 언어를 알고 있다면 분명 본 적이 있는 구문 들일 것이라고 생각한다.

     

    if구문

    if문은 어떤 조건식이 참이면 블록 안의 내용을 수행하고 거짓이면 뛰어넘는다. 형식은 다음과 같다.

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

    실행문이 한 줄이면 괄호가 없어도 되지만 헷갈리는 경우가 있으니 괄호를 쓰는 것이 좋다고 생각한다. if문은 주로 특정 조건이 만족되면 프로그램을 종료시키거나 특정 위치로 이동하거나 변수를 증감시키거나 하는 방식으로 이용하게 된다. 만약 검사할 조건식이 여러 개이면 if문을 여러 개 사용할 수도 있지만 if-else구문을 이용하면 더 간결하게 코드를 작성할 수 있다. 조건식이 여러 개일 때 작성법이다.

    if(조건식1){
        실행문;
        실행문;
        ...
    }else if(조건식2){
        실행문;
        실행문;
        ...
    }else{
        실행문;
        실행문;
        ...
    }

    switc구문은 if-else 구문을 좀 더 가독성 좋게 바꾼 것이라고 보면 된다. 어떤 변수에 대해서 그것과 같은 case만 실행된다.

    switch(조건변수){
        case 1:
        	실행문;
            break;
        case 2:
        	실행문;
            break;
        case 3:
        	실행문;
            break;
        default:
        	실행문;
    }

    조건이 식이 아니라 변수인 점에 주의하자. 그래서 보통 변수를 입력받고 그 변수의 값의 경우를 전부 case로 써주는 방식을 사용한다. 예제는 조건변수가 1, 2, 3인 경우이다. 만약 99를 입력받고 변수로 쓰겠다면 case 99: 이렇게 쓰면 된다. 숫자뿐만 아니라 문자도 가능하다. 주의할 점은 반드시 case끝에 break를 써주어야 한다는 것이다. 특이하게 반복문이 아닌 조건문임에도 break가 없으면 case1을 실행하면 case2도 쭉 실행된다. 마지막 default는 해당되는 경우가 없을 시 선택되는 것으로 else와 같다고 생각하면 된다. 맨 끝은 break가 없어도 된다. 

     

    반복문을 살펴보기 전에 반복문에서 가장 많이 쓰이는 break와 continue에 대해서 살펴보겠다.

    break는 반복문 중간 어디에서든지 사용되는 순간 자신과 가장 가까운 반복문을 종료시킨다. 반복 횟수가 얼마나 남았던 아예 반복문을 종료해 버린다고 생각하면 편하다.

    for(조건식1){
        for(조건식2){
            실행문1;
            if(조건식3) break;
        }
        실행문2;
    }

    for반복문을 모른다면 아래에 설명이 있으니 잠깐 보고 오자. 여기서 조건식 3이 참이면 조건식 2 반복문이 아직 끝나지 않았어도 바로 실행문 2로 이동한다. if문은 조건문이기 때문에 break의 영향을 전혀 받지 않음에 유의하자.

    continue는 반복문을 종료시키지는 않지만 현재 반복단계에서 continue이후의 실행문들을 건너뛸 수 있다. 해당 반복문의 끝까지 남은 것들을 스킵한다고 이해하면 편하다.

    for(조건식){
        실행문1;
        continue;
        실행문2;
        실행문3;
    }

    위와 같이 코드가 있다면 여기서 실행문 1은 항상 실행되지만 continue가 뒤의 반복문을 스킵해 버려 실행문 2,3은 절대 실행되지 못한다. 주로 특정조건을 만족하면 반복문의 남은 부분을 실행되지 못하게 할 때 if문과 조합해 사용된다.

     

    for구문

    for은 특정 횟수만큼 반복을 할 때 주로 사용한다. 먼저 정수형 변수를 선언한 뒤(int i=0) 언제 반복할지 정해주고(i <10) 한번 실행이 끝난 후 변수를 어떻게 변화시킬지(i++) 정해준다. 예제에서는 i가 0부터 10 미만일 때 실행문을 한번 실행하면 1씩 증가하도록 설정하였다. 다른 언어와 약간 다른 점은 i를 for문 안에서 정의해서 쓸 수 있다는 점이다. 그리고 조건들은 세미콜론으로 구분해야 한다. 만약 1씩 증가시키지 않고 2씩 증가시키고 싶다면 i=i+2 이런 식으로 써야 한다.

    for(int i=0;i<10;i++){
        실행문;
    }
    향상된 for문
    for(int i:변수,배열 등){
        실행문;
    }

    위는 일반 for문이고 아래는 향상된 for문이다. 일반적인 for문은 i가 0부터 시작해 i가 9가 될 때까지 반복을 하고 10이 되면 반복문을 실행하지 않고 종료한다. 향상된 for문은 배열같이 여러 개의 원소를 포함한 자료형에서 들어있는 모든 원소를 순회하며 반복할 때 사용한다. 포함된 원소의 개수를 정확히 모를 때 사용하면 편리하다. i는 정수일수도, 객체일 수도 있다.

     

    while구문

    for문은 반복을 하는 횟수가 미리 정해지지만 while문은 조건이 참일 경우는 무한히 반복을 한다는 차이점이 있다. 사용하는 경우도 for문은 특정 횟수를 반복할 때 주로 사용하지만 while문은 반복 횟수를 모르고 조건만 알 때 주로 사용한다.

    while(조건){
        실행문;
        실행문;
    }

    조건식에 불리언 true를 넣으면 무한반복문이 되고 이때는 반복문을 빠져나올 수 있는 분기를 반드시 만들어야 한다. 그렇지 않으면 영원히 반복문을 빠져나오지 못한다. 주로 if문으로 특정 조건을 검사한 후 break를 사용한다. 물론 무한반복문이 아니더라도 중간에 break를 사용하면 그 즉시 반복문을 빠져나올 수 있다. 주로 모든 범위에서 무엇인가가 하나이상 존재하는지 검사해야 할 때 앞에서부터 검사하다가 찾는 것이 나오면 뒤쪽은 더 볼 필요가 없으므로 즉시 반복문을 빠져나와 효율성을 증가시킬 때 사용한다.

    파생형으로 do-while구문이 있다. while문은 시작할 때 조건을 검사하지만 do-while문은 무조건 한 번은 실행 후 맨 뒤에서 조건을 검사한다는 차이가 있다. 사용법은 다음과 같다.

    do{
        실행문;
    }while(조건식);

    무조건 한 번은 실행문을 실행해야 할 때 사용할 수 있다. 

     

    이제 기본적인 문법은 대부분 쓴 것 같다. 다음 포스팅부터는 참조 타입에 대해서 알아볼 것이다.

    'JAVA' 카테고리의 다른 글

    JAVA 연산자에 대해 알아보자  (0) 2023.03.07
    JAVA 자료형에 대해 알아보자  (0) 2023.02.09
Designed by Tistory.