공부/java

자바(java)의 조건문(2)

샤샤샤샤 2022. 11. 19. 19:46

오늘은 그다지 복습할 거리가 없다...

조건문과 반복문으로 들어갔는데, 파이썬으로 코딩할때도 느낀거지만 조건, 반복문은 그냥 많이 풀어보고 다른 사람 코드 연구 많이 해보는게 답이다.

 

import java.util.Random;

public class ex35 {
    public static void main(String[] args) {
        //연습문제 17 - 조건문 연습
        //오늘의 날씨예측에 따른 출력문을 작성해 봅시다.
        //랜덤수를 0 ~ 4까지 발생시켜
        // 0 이면 "맑음"
        // 1 이면 "흐림"
        // 2 이면 "비가 옴"
        // 3 이면 "눈이 옴"
        // 4 이면 "안개가 낌" 이라고 출력하시오.
        Random rand = new Random();
        int weather = rand.nextInt(5); //0~4
        if( weather == 0 ){
            System.out.println("맑음");
        }else if( weather == 1 ){
            System.out.println("흐림");
        }else if( weather == 2 ){
            System.out.println("비가 옴");
        }else if( weather == 3 ){
            System.out.println("눈이 옴");
        }else if( weather == 4 ){
            System.out.println("안개가 낌");
        }else{
            System.out.println("그외의 날씨입니다.");
        }

        //연습문제 18 - 조건문 연습
        //철수와 영희을 주사위게임을 하고 있다.
        //주사위 2개를 철수가 한번 던지고,
        //영희가 또 한번 던진다.
        //게임룰 : 첫번째 주사위는 십의 자릿수로하고,
        //        두번째 주사위는 일의 자릿수로 해서,
        // 더 높은 점수를 가진 사람이 승리한다.
        //출력값 예시 : 철수 주사위1 수 : 1
        //        철수 주사위2 수 : 3
        //        철수의 점수는 13
        //        영희 주사위1 수 : 3
        //        영희 주사위2 수 : 4
        //        영희의 점수는 34
        //        영희 승!
        int dice1 = rand.nextInt(6) + 1;
        int dice2 = rand.nextInt(6) + 1;
        int scoreCholsu = dice1 * 10 + dice2;
        int dice3 = rand.nextInt(6) + 1;
        int dice4 = rand.nextInt(6) + 1;
        int scoreYounghee = dice3 * 10 + dice4;
        System.out.println("철수 주사위1:" + dice1);
        System.out.println("철수 주사위2:" + dice2);
        System.out.println("철수 점수:"+scoreCholsu);
        System.out.println("영희 주사위1:" + dice3);
        System.out.println("영희 주사위2:" + dice4);
        System.out.println("영희 점수:"+scoreYounghee);
        if( scoreCholsu > scoreYounghee ) {
            System.out.println("철수 승");
        } else if( scoreCholsu < scoreYounghee ) {
            System.out.println("영희 승");
        }else{
            System.out.println("무승부!");
        }

    }
}

 

switch문.

if문과 더불어 쓰이는 조건문.

형식:

switch (정수형 변수) {

    case 정수값1;

        수행문1

        break;

    case 정수값 2;

.

.

.

.

     default:

        수행문

        break;

}

 오직 정수형 변수만을 입력값으로 받을수 있으니까 주의!

 

switch : switch문 시작할때 사용.

case : 각각의 조건을 나타냄. 만약 i ==3 이라는 조건을 원한다면 그냥 case 3 : 이라고 표현함.

break : case절의 수행을 멈추고 빠져나고 싶을때 사용

default : 정해진 조건 외의 모든 경우에 사용.

 

' : ' 이 사용되는 명령어. 우리가 일반적으로 무언가를 설명할때 "집 : 먹고 자는 곳" 이런 식으로 표현하듯, "4가 만족됨 : 수행문을 실행" 과 같이 직관적으로 이해하면 된다.

import java.util.Random;

public class ex36 {
    public static void main(String[] args) {
        //조건문 - 선택적 수행 - if문 switch문
        //             사용빈도 70%  30%
        //switch문 형식
        // switch( 정수형변수 ) {
        //    case 정수값1:
        //       수행문1;
        //    break;
        //    case 정수값2:
        //       수행문2;
        //    break;
        //    default:
        //       수행문3;
        //    break;
        // }
        // switch 예약어 : switch문을 시작할때 사용
        // case 예약어 : 각각의 조건을 나타낼때 사용
        // break 예약어 : case절의 수행을 멈출때 사용
        // default 예약어 : 그외의 모든 경우에 사용
        int i = 10;
        switch ( i ) {
            case 10:
                System.out.println("i값은 10입니다.");
                break;
            case 20:
                System.out.println("i값은 20입니다.");
                break;
            default:
                System.out.println("그외의 값입니다.");
                break;
        }

        //연습문제 19 - switch 연습
        //달을 나타내는 랜덤수 1~12까지의 정수를 발생시켜,
        //3,4,5이면 봄
        //6,7,8이면 여름
        //9,10,11이면 가을
        //12,1,2이면 겨울 이라고 출력하시오.
        Random rand = new Random();
        int month = rand.nextInt( 12 ) + 1;
        switch ( month ) {
            //break문이 없으면, 아래 case로 흘러간다.
            case 3: case 4: case 5:
                System.out.println("봄입니다.");
                break;
            case 6, 7, 8: //Java 14버전부터 가능함. 주의!
                System.out.println("여름입니다.");
                break;
            case 9: case 10: case 11:
                System.out.println("가을입니다.");
                break;
            case 12: case 1: case 2:
                System.out.println("겨울입니다.");
                break;
            default:
                System.out.println("그외의 달입니다.");
                break;
        }

        //*중괄호를 이용하는 예약어
        // class, 함수(main), 조건문(if,switch),
        // 반복문(for,while,do-while), 배열초기화
        //*그외는 평문 실행문에는 끝에 세미콜론을 붙인다.
        //*중괄호 시작과 끝에는 세미콜론을 붙이지 않는다.
        // 예) if(i==10) {; <-붙이지 않는다.
        //     }; <-붙이지 않는다.

    }//main함수
}//class
import java.util.Random;

public class ex37 {
    public static void main(String[] args) {
        //연습문제 20 - switch문 연습
        //애완견 똘이를 기쁘게 해줄 애완용 로봇을 프로그램해보자.
        // 코드 0를 입력하면 음악을 틀어준다.
        // 코드 1 : 간식을 준다.
        // 코드 2 : 주인의 영상을 틀어준다.
        // 코드 3 : 산책을 시켜준다.
        // 그외의 코드 : 잘못된 코드입니다. 출력
        //랜덤수(코드)를 0~5까지 발생시켜, 코드에 맞는 출력문을
        //작성하시오.
        Random rand = new Random();
        int code = rand.nextInt(6);
        switch (code) {
            case 0:
                System.out.println("음악을 틀어준다");
                break;
            case 1:
                System.out.println("간식을 준다");
                break;
            case 2:
                System.out.println("주인의 영상을 틀어준다");
                break;
            case 3:
                System.out.println("산책을 시켜준다");
                break;
            default:
                System.out.println("잘못된 코드입니다");
                break;
        }
    }
}