Java

[Java-23] 자바 조건문, 반복문

lee-maru 2020. 12. 4. 17:26

Java 조건문과 반복문

조건문


If 문


if문은 java든, 아니든 코드를 작성하면서, java가 이 코드를 실행을 할지 안할지 결정할 수 있게 해주는,
프로그래밍 언어에서는 필 수적은 조건문 이라고 할 수 있다.

간단한 예를 들어보자

if(true){ 
  //실행 되는 코드 
}
if(str == null) {
  str = "helloWorld";
}

다음과 같은 코드에서 str 변수가 정말로 null값을 가지고 있다면,
실제로 { } 안에 있는 문법이 실행이 되는 것이다. 이런 간단한 if문은 다시

if(str == null)
    str = "HelloWorld";

이런식으로 { }을 작성해주지 않아도 알아서 잘 작성하는 걸 볼수 있다.


else 문


if문 에서는 else 라는 keyword를 지원한다. else 문을 사용하면,
즉 if문을 통과하지 못했을때 의 상태에서 실행이 된다는 뜻이다. 예를들어보자

int x = 3; 
if(x == 3){
    System.out.println("x 의 값은 3입니다. ");
}else{
    System.out.println("x 의 값은 3이 아닙니다. ");
}

x의 값이 3이면 if문을 정상적으로 통과할 것이다. 하지만 3이 아니라면 else문의 { } 을 실행한다.


else if 문


if문에서는 한가지의 조건만 걸 수 있는 것이 아니라 ,
다중 조건도 걸 수 있다. elseif 를 사용하면 된다.

        if(x == 5){
            System.out.println("x = 5");
        }else if(x == 3) {
            System.out.println("x = 3");
        }else{
            System.out.println("I dont know");

switch 문


if문 은 간단하게 사용할 수 있지만 만약, 브렌치 (여러가지 조건이 걸려서 if문이 나뭇가지 처럼 이어지는 상황) 은, 코드입장에서 항상 좋은 결과각 될 수 없다.

        int x = 3;
        int y = x;
        if(x == 5){
            System.out.println("x = 5");
            if(x == 0){
                System.out.println(x);
                if(x == y){
                    System.out.println("x is y");
                }
            }
        }else if(x == 3) {
            System.out.println("x = 3");
        }else{
            System.out.println("I dont know");
        }

이런코드는 가독성 면에서, 유지보수 측면에서도 좋은 효과를 가져올 수 없다.


case 사용법


        switch (x){
            case 3:
                System.out.println(x); //x 가 3일 때 실행
                break;
            case 6:
                System.out.println(x); //x 가 6일 때 실행
                break;
            case 7:
                System.out.println(x); //x 가 7일 때 실행
                break;
            default:
                System.out.println(x); //x 가 모든 조건에 만족 하지 않음
                break;
        }

간단하게 이런식으로 사용할 수 있다. case 문 안에서는 조건을 걸어주고 그 밑에 실행하고 싶은
코드를 작성해주면 그만이다.

case 조건
break 종료
default 모든조건을 만족시키지 못했을 떄 실행

        switch (x) {
            case 3 -> System.out.println(x); //x 가 3일 때 실행
            case 6 -> System.out.println(x); //x 가 6일 때 실행
            case 7 -> System.out.println(x); //x 가 7일 때 실행
            default -> System.out.println(x); //x 가 모든 조건에 만족 하지 않음
       }

java13 이 후 부터는 다음과 같이 람다 형태로도 사용할 수 있는데,
이는 switch문이 아니라 switch Operator 이란걸 알아 둬야 한다.

반복문


반복문은 말 그대로 일정한 기간동안 계속해서 작성한 코드를 실행시키는 문법이다.
그 종류에는 대표적으로 for, while, dowile, forEach 같은 여러가지 방법이 있는데, 오늘
다뤄볼 문법은 for 와 while, dowhile 에 대해서 다뤄보도록 하겠다.


for 반복문


만약 우리가 C언어 를 배웠다면, 아주쉽게 작성할 수 있을 것이다. 간단한 예를 한번 들어보고 분석해보도록 하자

        for(int i = 0; i< 10; i++){
            System.out.println(i);
            }

이런 문법이 있다고 하자, i = 0 으로 먼저 선언을 진행을 해주고, 이 i가 10보다 작을 때 까지만 진행을 하겠다.
라는 뜻이다. 이러면 i 라는 variable 9가 될 때 까지 실행 한다. 출력문을 보면

결과 console
0
1
2
3
4
5
6
7
8
9


이중 for문 도 가능하게 된다.

        for(int i = 0; i< 10; i++){
            System.out.println("i = " + i);
            for(int j =0; j<8; j++){
                System.out.println(j);
            }
        }

이런식으로 작성이 가능하게 된다. for문이 쓰기 귀찮다면 선장님께서 알려준 개꿀팁을 사용해볼 수 있도록 하자.

itar

이클립스에서도 될지 모르겠지만 만약 소스코드를 작성하다가 itar를 한번 적어보자 그러면, IDE 가
자동으로 for 문을 작성해준다.


while 문


while 문 또한 코드를 반복적으로 작동시키기 위한 정말 기본적인 문법 중 하나이다. 사용하는 법은 간단하다.

    while(연산식){
        //실행시키고 싶은 코드 
    }

이를 for문처럼 사용하기 위해서는 어떻게 작성하는게 좋을 까? 방금 작성한 for문을 통해 i를 9까지 작성하는 코드를 while 문을 통해 작성해보도록 하자.

        int i = 0;
        while( i < 10){
            System.out.println(i);
            i++;
        }

이런식으로 작성할 수 있다. 나느 개인적으로 while 문 보다는 for문을 많이 작성하고는 하는데, while문을 보면 좀 더 깔끔해 보이긴 한다. 이런 간단한 연산식에선 말이다.


do while 문

do while 문의 특징은, do 라는 글자에서도 알 수 있듯이, 무조건 한번은 실행을 해야한다는 뜻이다.
예를 들어보다

        int i = 0;
        while( i > 10){
            System.out.println(i);
            i++;
        }

다음과 같은 문장이 있다고 하자 과연 i 출력 이 실행 될까? 절대 실행되지 않는다. >
while( expression) 에서 expression의 조건이 충족되지 않기 때문에 당연하자 하지만,

                int i =0;
        do{
            System.out.println(i);
            i++;
        }while (i>10);

이러면 단 한번은 출력이 된다느 것이다.

결과 console
0

오늘은 코드위주로 조건문과 반복문에 대해서 알아보도록 했다.