[자바의 정석 기초편] 조건문과 반복문

JEREGIM·2023년 1월 16일
0

📌switch 문

처리해야 하는 경우의 수가 많을 때 유용한 조건문

switch(조건식) {
	case1 :
    	break;
    case2 :
    	break;
    default : // 조건식의 결과와 일치하는 case문이 없을 때 실행    
}

switch 문의 제약 조건

  1. switch 문의 조건식 결과는 정수 또는 문자열이어야 한다.

  2. case 문의 값은 정수, 상수(문자 포함), 문자열만 가능하며 중복되면 안된다.(변수는 안됨)


📌난수 만들기 - Math.random()

Math.random() : 0.0과 1.0 사이의 임의의 double 값을 반환

ex) 주사위
(int)(Math.random() * 6) + 1

*6 은 개별 값의 개수


📌do while 문

import java.util.Scanner;

public class Ex4_do_while {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int input = 0, answer = 0;

        answer = (int) (Math.random() * 100) + 1;
        // 블럭을 최소한 한번 이상 반복 - 사용자의 입력을 받을때 쓰인다.
        do {
            System.out.print("1~100 사이의 정수를 입력하세요 : ");
            input = scanner.nextInt();

            if (input > answer) {
                System.out.println("더 작은 수를 입력하세요.");
            } else if (input < answer) {
                System.out.println("더 큰 수를 입력하세요.");
            }
        } while (input != answer);
        System.out.println("정답입니다!");
    }
}

블럭을 최소한 반번 이상 반복한다.
보통 처음 사용자의 입력을 받을 때 쓰임


📌예제

import java.util.Scanner;

public class Ex4_all {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = 0, menu = 0;

        outer:
        while (true) {
            System.out.println("1.제곱");
            System.out.println("2.루트");
            System.out.println("3.로그");
            System.out.print("원하는 메뉴를 고르세요(종료:0번) : ");

            String tmp = scanner.nextLine();
            menu = Integer.parseInt(tmp);

            if (menu == 0)
                break;
            else if (!(1 <= menu && menu <= 3)) {
                System.out.println("메뉴를 잘못 고르셨습니다.");
                continue;
            }
            System.out.println("선택하신 메뉴는 " + menu + "번 입니다.");

            while (true) {
                System.out.print("계산할 값을 입력하세요(계산 종료:0, 전체 종료:99) : ");
                tmp = scanner.nextLine();
                num = Integer.parseInt(tmp);

                if (num == 0)
                    break; // 하나의 반복문밖에 빠져나가지 못한다.
                if (num == 99)
                    break outer; // outer 라고 이름 붙인 반복문을 빠져나간다.

                switch (menu) {
                    case 1:
                        System.out.println(num + "의 제곱 : " + num * num);
                        break;
                    case 2:
                        System.out.println(num + "의 루트 : " + Math.sqrt(num));
                        break;
                    case 3:
                        System.out.println(num + "의 로그 : " + Math.log(num));
                        break;
                }
            }
        }
        System.out.println("프로그램이 종료되었습니다.");
    }
}
if (num == 0)
	break; // 하나의 반복문밖에 빠져나가지 못한다.
if (num == 99)
	break outer; // outer 라고 이름 붙인 반복문을 빠져나간다.
  • break 문은 하나의 반복문밖에 빠져나가지 못한다.
  • 반복문에 이름을 붙이고 break 이름; 하면 이름 붙인 반복문을 빠져나간다.
            else if (!(1 <= menu && menu <= 3)) {
                System.out.println("메뉴를 잘못 고르셨습니다.");
                continue;
            }

continue 문

  • 자신이 포함된 반복문의 끝으로 이동 후 다음 반복으로 넘어간다.
  • 전체 반복 중에서 특정 조건 시 반복을 건너뛸 때 유용함

0개의 댓글