본문 바로가기
공부/java

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

by 샤샤샤샤 2022. 11. 19.

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

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

 

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