본문 바로가기

Java/Study

[Java] 백기선 스터디 4주차 과제

학습할 것 (필수)

  • 선택문
  • 반복문

A.선택문 : 특정 조건에서 특정 코드만을 실행 할 수 있게 해줍니다.

1. if 문 

if(조건){

조건을 만족하면 실행할코드

}

boolean 자료형 : 논리 자료형으로 참과 거짓을 나타낼 때 쓰는 자료형

 

2. if - else문

조건을 만족할 경우와 만족하지 않을경우 모두 코드를 실행하고 싶은 경우 자주 사용됩니다.

 

3. 중첩 if 문

조건을 여러 가지로 나누고 싶을경우 else if를 사용하여 조건을 추가해 줍니다.

 

위 세 가지 선택문의 이해를 돕기 위해 홀수와 짝수를 판별하는 프로그램을 작성해 보면,

public class ex_001{
    public static void main(String[] args) {
        int x = 5;
        if (x % 2 == 0){//x를 2로 나눈 나머지가 0이면 짝수가 된다
            System.out.println("x는 짝수입니다.");
        }else{
            System.out.println("x는 짝수가 아닙니다.");
        }
    }
}

 

이렇게 코드를 작성하면 int x가 짝수가 아니라는 정보밖에 인식 할 수 없습니다. 

코드를 작성하다가 x 가 홀수 인지 판단하고 싶어졌다면 아래와 같이 코드를 작성할 수 있습니다.

 

public class ex_002 {
    public static void main(String[] args) {
        int x = 5;
        if(x % 2 == 0){
            System.out.println("x는 짝수입니다.");
        }else if(x % 2 == 1){
            System.out.println("x는 홀수 입니다.");
        }else{// x가 짝수도 아니고, 홀수도 아니라면
            System.out.println("짝수도, 홀수도아닙니다");
        }
    }
}

이렇게 코드를 작성하면 x에 대한 정보를 ex_001예제보다 자세히 알 수 있습니다.

 

조건문에서 주의 할 점:

코드를 위에서부터 읽기 때문에 먼저 만족한 조건의 코드만 실행하게 됩니다. 

4. Switch/case 문

 

switch(변수){
            case 값1:
            //변수가 값1일떄 수행할 코드
            break;
            case 값2:
            //변수가 값2일 때 수행할 코드
            break;
            deafult:
            //case값에 만족하는 것이 없을 때 수행할 코드
}

public class ex_003 {
    public static void main(String[] args) {
       String menu = "Americano";
       switch(menu){
           case "Americano":
               System.out.println("4100원 입니다");
               break;
           case "Latte":
               System.out.println("4600원 입니다.");
               break;
           case "Cappuccino":
               System.out.println("4700원 입니다");
               break;
           default:
               System.out.println("죄송하지만, 없는 메뉴입니다!");

       }
    }
}

 

 

switch case문에서는 위에서부터 아래까지 쭉 실행시키므로 조건에 만족하면 break를 삽입해서 뺴줘야 합니다.

그렇지 않으면 모든 케이스들을 비교합니다.

B. 반복문 : 특정한 명령을 반복적으로 수행합니다.

1. for문

for( 초기값; 조건문; 증가치){

              //반복하여 수행할 코드

}

      for(int i = 0 ; i < 10 ; i++){
          System.out.println(i);// 출력값 0,1,2,3,4,5,6,7,8,9
      }

2. for-each문

for( 배열 안의 인자 타입, 배열){반복하여 실행할 코드}

 

가변하는 복잡한 배열이나 리스트의 크기를 구할 필요가 없습니다.

public class ex_004 {
    public static void main(String[] args) {
        int[] arr = {0, 1, 2, 3, 4, 5, 6, 7};
        String[] arr2 = {"a", "b", "c", "d"};
        
        for (int i : arr) {
            System.out.println(arr[i]);//출력 0,1,2,3,4,5,6,7
        }
        for (String a : arr2) {
            System.out.println(a);// 출력 a,b,c,d
        }
    }
}

단점 1 - 반복문 내에서 리스트의 값을 추가하거나 변경할 수 없습니다.

단점 2 - 배열을 역순으로 탐색할 수 없습니다.

 

3. while문

while(조건문){// 조건을 만족할 동안 계속 반복됨              

              반복적으로 실행할 코드}

**조건을 적절하게 설정해야 한다 그렇지 않으면 무한루프에 빠질 수 있습니다.

public class ex_005 {
    public static void main(String[] args) {
        int k = 0;
        while(k < 10){
            System.out.println(k);
            k++;
        }
    }
}// 출력 0,,1, 2, 3, 4, 5, 6, 7, 8, 9

 

4. do while 문

do{

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

public class ex_006 {
    public static void main(String[] args) {
        int i = 200; // 초기값 설정
        do {
            System.out.println(i); // 조건을 만족하지는 않았지만 한번은 무조건 출력함
        } while (i < 100); // 조건식
    }
}

 

break, continue(점프문)

break 문 : 반복문을 빠져나갈 때 사용합니다. 

                 반복문에서 break를 만나면 반복문이 종료됩니다

 

continue문 : 반복문에서 continue 다음 코드들을 건너 뛰고 다음 반복을 실행할 때 사용합니다.

public class ex_007 {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5,6};
        for(int i: arr){
            if(i == 1){//i가 1일 경우
                System.out.println("1은 출력하지 않습니다!");
                continue;// 아래의 코드는 실행하지 않고 다음 인자로 넘어갑니다
            }
            System.out.println(i);// 출력값: 1은 출력하지 않습니다!,2,3,4,5,6
        }
    }
}