본문 바로가기
JAVA/이것이 자바다

[Chapter 04] 조건문과 반복문

by Dream Jin 2022. 12. 3.

4.1 코드 실행 흐름 제어

→ 조건문과 반복문으로 흐름을 제어한다

조건문 → if, switch

반복문 → for while do- wile

4.2 if문

if(조건식){

}

→ 실행문이 1개일때는 중괄호 생략은 가능하지만, 어지간하면 붙여라

if(조건식){

}else{
}

if(조건식1){

} else if(조건식2){

} else {

}

4.3 switch 문

break문이 없다면 case n:으로 간 다음 그밑에 그대로 전부실행

switch문의 괄호에는 정수타입(byte, char, int, short, long)과 문자열 타입(string)만 가능하다 실수형 불가능

 

JAVA 12 부터 → 가 생김 (실행문이 하나라면 중괄호 생략가능)

//JAVA 12이전
package chap04.sec03;

import java.util.Scanner;

public class SwitchCharExample {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("문자 입력");
        String grade = scanner.nextLine();

        switch (grade) {
        case "A": // string 비교는 큰따옴표("")
        case "a":
            System.out.println("우수 회원 입니다.");
            break;
        case "B":
        case "b":
            System.out.println("일반 회원 입니다.");
            break;
        default:
            System.out.println("손님 입니다.");
        }

        // JAVA12
        switch (grade) {
        case "A", "a" -> {
            System.out.println("우수 회원 입니다.");
        }
        case "B", "b" -> {
            System.out.println("일반 회원 입니다.");
        }
        default -> {
            System.out.println("손님 입니다.");
        }
        }

        //한줄일때는 중괄호 생략 가능
        switch(grade) {
        case "A", "a" -> System.out.println("우수 회원 입니다.");
        case "B", "b" -> System.out.println("일반 회원 입니다.");
        default -> System.out.println("손님 입니다.");
        }


        }
    }

JAVA 13부터 스위치된 값을 변수에 바로 대입할수 있다. 중괄호 사용시 yield 사용 but default 값이 항상 있어야 한다.

package chap04.sec03;

import java.util.Scanner;

public class SwitchValueExample {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("성적을 입력하세요: ");
        String grade = scanner.nextLine();

        //JAVA 11이전
        int score =0;
        switch(grade) {
        case "A":
            score = 100;
            break;
        case "B":
            int result = 100 - 20;
            score = result;
            break;
        default:
            score = 50;
        }
        System.out.println(score);
        //JAVA 12 부터
        int score2 = switch(grade) {
        case "A" -> 100;
        case "B" -> {
            //여기 연산식
            int result = 100 - 20;
            yield result;
        }
        default -> 50;
        };

        System.out.println(score2);
    }

}

4.4 for문

반복에는 for while do-while

보통 for문은 반복 횟수를 정할때

for(초기화식; 조건식; 증감식){

}
-> example
for(int i=0; i<=10; i++){
}
->주의할 점은 변수를 2개이상씩도 사용이 가능하다, 구분은 , 쉼표로 한다.
->초기화를 할때에는 부동 소수점을 쓰는 float 을 사용하지 않는다

→ 구구단 출력 (키보드로 입력받고)

package chap04.sec04;

import java.util.Scanner;

public class MultiplicationTableExampleScanner {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("몇단부터 출력하나요?");
        for (int m = scanner.nextInt(); m < 10; m++) {
            System.out.println("-----" + m + "-----");
            for (int n = 1; n < 10; n++) {
                System.out.println(m + "x" + n + "=" + (m * n));
            }
        }
    }
}

4.5 while문

조건이 True일 경우에만 반복

(True를 넣어버리면 무한반복)

4.6 do while문

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

1 실행문 모두 실행 -> 2 조건식 평가 그결과가 true이면 다시 실행문 실행, false 이면 종료

4.7 break문

for문과, if문에서 break를 만나면 그 블럭을 빠져나가라

그냥 braek이면 중첩시 해당 블럭만 종료되지만 Label을 붙이면 중첩된거 밖에꺼 까지 종료된다.

Outer: for()
    for()
        for()
            break Outer; 
이면 바로 중첩 for밖까지 종료된다. 

4.8 continue

continue를 만나면 제일처음 으로 돌아간다 → 증감식으로 but continue 아래쪽에 코드는 실행하지 않는다.

'JAVA > 이것이 자바다' 카테고리의 다른 글

[Chapter 06] 클래스  (0) 2022.12.31
[Chapter 05] 참조 타입  (0) 2022.12.31
[Chapter 03] 연산자  (0) 2022.12.03
[Chapter 02] 변수와 타입  (0) 2022.12.03
[Chapter01] 자바 시작하기  (0) 2022.11.29

댓글