JAVA 조건문과 반복문

728x90
조건문 - if, switch
조건문은 조건식과 문장을 포함하는 블럭{}으로 구성되어 있으며, 조건식의 연산결과에 따라서 실행할 문장이 달라져서 프로그램 실행의 흐름을 변경할 수 있다. 아래 파일을 받으면 아래의 텍스트를 txt로 바꾼 것을 볼 수 있다.



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

scrore = 80;
if (score > 60 )
    {
        System.out.println("합격입니다");
    }



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

if (input==0)
     {
        System.out.println("0입니다");
    } else {
        System.out.println("0이 아닙니다");
    }



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

if (score >= 90)  {
        grade = 'A'   // score가 90보다 크거나 같다면 A 학점
    }     else if (score >= 80) {
         grade = 'B' // 80점보다 크거나 같으면 B 학점
    }     else if (score >= 70)  {
         grade = 'C' // 70점보다 크거나 같으면 C 학점
    }     else {
          grade = 'D';
    }
System.out.println("당신의 학점은 + " + grade + "입니다");



< 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; // 수행 정지



< 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--);



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

int i = 5;   // i 를 5라고 선언
     while(i--!=0) {  // i를 1씩 빼서 i가 0이 될 때까지
    System.out.println(i +  - " I love you"); // i + - I love you를 계속 실행
}



< 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("1과 100 사이의 정수를 입력"); // 안내문
            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("정답입니다");




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


for(int i=0; i <= 10; i++) {  // i가 0부터 시작해서 10까지 1씩 더해짐
    if (i%3==0) // 결과가 3의 배수라면
         continue; // continue의 실행으로 결과가 블럭의 끝 } 으로 이동한다. 즉 System.out.println을 지나치기 때문에 아무것도 출력되지 않는다.
        System.out.println(i);
    } // 여기로 값이 이동한다







본 포스팅은 IT 교육기관인 KIC 캠퍼스의 지원을 받은 리포트입니다.
본문은 '남궁성, JAVA의 정석 3rd Edition' 교재를 공부하면서 주요 내용을 요약하고 있습니다.
혹시 잘못되거나 문제 소지시 댓글 남겨주시면 조치하겠습니다.




728x90

'DEV' 카테고리의 다른 글

JAVA 레코드 이동 예제  (0) 2018.01.19
JAVA 기본 프레임 구조 예제  (0) 2018.01.19
JAVA 배열(Array) 정리 #1  (0) 2018.01.13
JAVA 연산자 요약  (0) 2018.01.09
JAVA 메모장 예제  (0) 2018.01.09
JAVA 상하좌우 키보드로 이미지를 이동시키기  (0) 2018.01.09