본문 바로가기

교육

자바(JAVA) 조건문 반복문

반응형

 



조건문 - if, switch

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

 

 

(null)

 

< if >

가장 기본적인 조건문이며 조건식과 괄호 { } 로 이뤄져 있다. if의 조건식이 만일 참(true)라면 괄호 { } 안의 문장을 수행하라는 의미다.

 

scrore = 80;

if (score >60 )

    {

        System.out.println("합격입니다");

    }

 

 

(null)

 

< if-else >

if-elseif 구문에 else가 추가된 것으로 if의 조건이 false의 경우 else의 조건을 수행하라는 의미다.

 

if (input==0)

     {

        System.out.println("0입니다");

    } else {

        System.out.println("0이 아닙니다");

    }

 

 

(null)

 

< if-else if 구문 >

if-else 구문은 2가지 중 한가지가 수행되어야 하는데 그 경우의 수가 여러가지일 경우 만들 수 있는 방법이다.

 

if (score >= 90)  {

        grade = 'A'   // score90보다 크거나 같다면 A 학점

    }     else if (score >= 80) {

         grade = 'B' // 80점보다 크거나 같으면 B 학점

    }     else if (score >= 70)  {

         grade = 'C' // 70점보다 크거나 같으면 C 학점

    }     else {

          grade = 'D';

    }

System.out.println("당신의 학점은 + "+ grade + "입니다");

 

 

(null)

 

< swtich >

if 문은 참과 거짓 밖에 없기 때문에 조건이 여러개일 경우 해당 조건을 모두 적어줘야 한다는 단점이 있다.

switch문은 하나의 조건식으로 많은 경우의 수를 처리할 수 있는 장점이 있다.

 

    System.out.println("현재의 계절을 입력하세요"); // 안내 메시지

 

    Scanner scanner = new Scanner(System.in);

    int month = scanner.nextInt (); // 키보드에 입력 받은 값을 month에 저장

 

    switch(month) {  // month에 대한 switch 시작

        case 3 :

        case 4 :

        case 5 :

            System.out.println("현재의 계절은 봄"); // 3,4,5가 입력되었을 경우 봄이라고 출력

            break; // 값이 3,4,5가 아니라면 아래 케이스로 넘어가기

 

        case 6:

        case 7 :

        case 8 :

            System.out.println("현재의 계절은 여름"); // 6,7,8이 입력되었을 경우 봄이라고 출력

            break; // 값이 6,7,8이 아니라면 아래 케이스로 넘어가기

 

        case 9 :

        case 10 :

        case 11 :

            System.out.println("현재의 계절은 가을"); // 9,10,11이 입력되었을 경우 가을이라고 출력

            break; // 값이 9,10,11이 아니라면 아래 케이스로 넘어가기

 

        case 12 :

        case 1 :

        case 2 :

            System.out.println("현재의 계절은 겨울"); // 12,1,2이 입력되었을 경우 겨울이라고 출력

            default :  System.out.println("1~12 이내의 월을 입력하여 주십시오");  // case의 어디에도 해당하지 않았을 때 수행할 문장

            break; // 수행 정지

 

 

(null)

 

< for >

for 문은 반복하여 수행할 때 유용하다. 특히 반복 횟수를 알고 있을 때 사용하면 편하다.

 

    for(int i=1; i<=10; i++) {   // 1부터 시작하여10번까지1씩 증가

        System.out.println("I love you");

        }

        

증감식은 이전에도 한번 언급한 적이 있지만 다시 한번 정리하자.

i++ // 1씩 증가

i-- // 1씩 감소

i+=2 // 2씩 증가

i*=3 // 3배씩 증가

 

증감식도 쉼표를 사용해서 두 문장 이상을 하나로 연결해서 사용가능

 

for(int i=1, j=10; i<=10; i++, j--);

 

 

(null)

 

< while >

while문은 조건식이 '(true)'가 나오면 끝까지 계속 수행하고, 거짓(false)이 나오면 멈춘다.

 

int i = 5;   // i 5라고 선언

     while(i--!=0) {  // i1씩 빼서i0이 될 때까지

    System.out.println(i +  - "I love you"); // i + - I love you를 계속 실행

}

 

 

(null)


< do-while >

do-while 문은 while문의 변형으로 while과 유사하지만 조건식과 블럭 { } 의 순서가 변경되어 있다.

아래 예제에서 답을 볼 수 있다. 다만 아래 예제는 정답이 랜덤하게 정해지기 때문에 잘 끝나지 않을 것이다.

 

    int input = 0, answer = 0;

 

    answer = (int)(Math.random() * 100) + 1;   // 1~100 사이의 임의의 수를 answer에 저장

    Scanner scanner = new Scanner(System.in); // scanner 생성

 

    do {

            System.out.print("1100 사이의 정수를 입력"); // 안내문

            Input = scanner.nextInt();   // 키보드에 타이핑 된 수를 입력

 

            if(input >answer) {

                System.out.println("더 작은 수로 시도하시오"); // 숫자가 100보다 클 때 출력되는 내용

               } else if(input <answer) {

                    System.out.println("더 큰 수로 시도하시오");   // 숫자가 1보다 작을 때 출력되는 내용

                }

                } while(input!=answer);   // 만일 input 값이 answer의 범위 안에 들어갈 경우

                System.out.println("정답입니다");

 

 

 

(null)

 

< continue >

continue 문은 반복문 내에서만 사용할 수 있으며 반복되는 도중에 continue와 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다.

 

 

for(int i=0; i <= 10; i++) {  // i0부터 시작해서 10까지 1씩 더해짐

    if (i%3==0) // 결과가 3의 배수라면

         continue; // continue의 실행으로 결과가 블럭의 끝 } 으로 이동한다. System.out.println을 지나치기 때문에 아무것도 출력되지 않는다.

        System.out.println(i);

    }



 

 

(null)