국비 4

냐아암·2023년 4월 18일
0

국비

목록 보기
7/114

1. if문 코드

  • if문
    조건식이 true일 때만 내부 코드 수행

    if(조건식) {
    조건식이 true일 때 수행할 코드
    }

  • if-else 문
    -조건식 결과가 true이면 if문 수행
    -조건식 결과가 false이면 else문 수행

    if(조건식) {
    조건식이 true일 때 수행할 코드
    } else {
    조건식이 false일 때 수행할 코드
    }

package edu.kh.control.condition;

import java.util.Scanner;

public class ConditionExample {
	
	public void ex1() {
    
		//if문
		Scanner sc= new Scanner(System.in);
		
		System.out.print("정수 입력: ");
		int input = sc.nextInt();
		
		//입력된 정수가 양수인지 검사
		if(input>0) {
			System.out.println("양수입니다.");
		}
		
		if(input<=0) {
			System.out.println("양수가 아닙니다.");
		}
		
		
	}
	public void ex2() {
		
		//if-else 문
		
		Scanner sc = new Scanner(System.in);
		
		//홀짝 검사
		System.out.print("정수 입력: ");
		int input = sc.nextInt();
		
		if(input%2!=0) {
			System.out.println("홀수입니다.");
		} else { //짝수 또는 0 입력 시 수행
			
			//*중첩 if문
			if(input == 0) {
				System.out.println("0입니다.");
			}else {
				System.out.println("짝수입니다.");
			}
		}
		
	}
	public void ex3() {
		//if-else, if-else
		//양수 음수 0 판별
		
		Scanner sc = new Scanner(System.in);
		System.out.print("정수 입력: ");
		int input = sc.nextInt();
		
		if(input>0) {//input이 양수일 경우
			System.out.println("양수입니다.");
		}else if(input<0) {//input이 음수일 경우
			//바로 위에 있는 if문이 만족되지 않은 경우 수행
			System.out.println("음수입니다.");
		}else {
			//모든 if, if else가 만족되지 않은 경우 수행
			System.out.println("0입니다.");
		}
		
	}
	public void ex4() {
		//달(month)을 입력받아 해당 달에 맞는 계절 출력
		Scanner sc = new Scanner(System.in);
		System.out.print("달 입력: ");
		int month = sc.nextInt();
		
		String season; //아래 조건문 수행 결과를 저장할 변수 선언
		
		//봄(3,4,5)/ 여름(6,7,8)/ 가을(9,10,11)/ 겨울(12,1,2)
		//해당하는 계절이 없을 경우 "해당하는 계절이 없습니다." 출력
		
		
		/*
		if(month>=3 && month <=5) {
			System.out.println("봄입니다.");
		}else if(month>=6 && month<=8) {
			System.out.println("여름입니다.");
		}else if(month>=9 && month<=11) {
			System.out.println("가을입니다.");
		}else if(month>=12 && month<=2) {
			System.out.println("겨울입니다.");
		}else {
			System.out.println("해당하는 계절이 없습니다.");
		}
        */
		
		
		/*
        동일한 결과(||사용)		
		if(month==3 || month==4 || month==5) {
			System.out.println("봄입니다.");
		}else if(month==6 || month==7 || month==8) {
			System.out.println("여름입니다.");
		}else if(month==9 || month==10 || month==11) {
			System.out.println("가을입니다.");
		}else if(month==12 || month==1 || month==2) {
			System.out.println("겨울입니다.");
		}else {
			System.out.println("해당하는 계절이 없습니다.");
		}*/

		
		if(month>=3 && month <=5) {
			season="봄";
		}else if(month>=6 && month<=8) {
			season="여름";
		}else if(month>=9 && month<=11) {
			season="가을";
		}else if(month>=12 && month<=2) {
			season="겨울";
		}else {
			season="해당하는 계절이 없습니다.";
		}
		System.out.println(season);
		
	}
	public void ex5() {
		//나이를 입력받아
		//13세 이하면 "어린이입니다."
		//13세 초과 19세 이하면 "청소년입니다."
		//19세 초과 시 "성인입니다."
		
		Scanner sc = new Scanner(System.in);
		System.out.print("나이 입력: ");
		int age = sc.nextInt();
		
		if(age<=13) {
			System.out.println("어린이입니다.");
		}else if(age>19) {
			System.out.println("성인입니다.");
		}else {
			System.out.println("청소년입니다.");
		}
		
		/*
		if(age<=13) {
			System.out.println("어린이입니다.");
		}else if (age<=19) { //age>13 && 안 써도 앞의 조건식을 거쳐왔기 때문에 OK
			System.out.println("청소년입니다.");
		}else {
			System.out.println("성인입니다.");
		}
		*/
	}
	public void ex6() {
		
	   // 점수(100점 만점)를 입력 받아
       // 90점 이상 : A
       // 80점 이상 90점 미만 : B
       // 70점 이상 80점 미만 : C
       // 60점 이상 70점 미만 : D
       // 60점 미만 : F
       // 0점 미만, 100 초과 : "잘못 입력하셨습니다"
		
		Scanner sc = new Scanner(System.in);
		System.out.print("점수 입력: ");
		int score = sc.nextInt();
		String result;
		
		if(score<0 || score>100) {
			result="잘못 입력하셨습니다.";
		}else if(score>=90) {
			result="A";
		}else if(score>=80) {
			result="B";
		}else if(score>=70) {
			result="C";
		}else if(score>=60) {
			result="D";
		}else {
			result="F";
		}
		
		System.out.println(result);
		
	}
	public void ex7() {
		
		// 놀이기구 탑승 제한 검사
	      
	    // 나이가 12세 이상, 키 140.0cm 이상 일 경우에만 "탑승 가능"
	    // 나이가 12미만인 경우 : "적정 연령이 아닙니다."
	    // 키가 140.0cm 미만 : "적정 키가 아닙니다."
	    // 나이를 0세 미만, 100세 초과 시 : "잘못 입력 하셨습니다."
		
		Scanner sc = new Scanner(System.in);
		
		System.out.print("나이 입력: ");
		int age = sc.nextInt();
		
//		System.out.print("키 입력: ");
//		double height = sc.nextDouble();
		
		String result;
		
		if (age<0 || age>100) {
			result="잘못 입력하셨습니다.";
		}else {
			System.out.print("키 입력: ");
			double height = sc.nextDouble();
			
			if(age<12) {
				result="적정 연령이 아닙니다.";
			}else if(height <140.0) {
				result="적정 키가 아닙니다.";
			}else {
				result="탑승 가능";
			}
		}
		
		/* 키 입력 받은 후 if문 실행하는 경우
		if (age<0 || age>100) {
			result="잘못 입력하셨습니다.";
		} else {
			if(age <12) {
				result="적정 연령이 아닙니다.";
			}else {
				if(height < 140.0) {
					result="적정 키가 아닙니다.";
				}else {
					result="탑승 가능";
				}
				
			}
		}
		*/
		
		
		/* 키 입력 받은 후 if문 실행하는 경우
		if (age<0 || age>100) {
			result="잘못 입력하셨습니다.";
		}else if(age<12) {
			result="적정 연령이 아닙니다.";
		}else if(height<140.0) {
			result="적정 키가 아닙니다.";
		}else {
			result="탑승 가능";
		}
		*/
		
		System.out.println(result);
		
	}
	public void ex8() {
		
		// 놀이기구 탑승 제한 검사 프로그램
        // 조건 - 나이 : 12세 이상
        //     -  키 : 140.0cm 이상
      
        // 나이를 0~100세 사이로 입력하지 않은 경우 : "나이를 잘못 입력 하셨습니다."
        // 키를 0~250.0cm 사이로 입력하지 않은 경우 : "키를 잘못 입력 하셨습니다."
        // -> 입력이 되자 마자 검사를 진행하여 잘못된 경우 프로그램 종료
      
        // 나이 O , 키 X : "나이는 적절하나, 키가 적절치 않음";
        // 나이 X , 키 O : "키는 적절하나, 나이는 적절치 않음";
        // 나이 X , 키 X : "나이와 키 모두 적절치 않음";
        // 나이 O , 키 O : "탑승 가능"
		
		/*내가 짠 코드
		Scanner sc = new Scanner(System.in);
		System.out.print("나이 입력: ");
		int age = sc.nextInt();
		
		String result;
		
		if (age<0 || age>100) {
			result="나이를 잘못 입력하셨습니다.";
			}else {
			System.out.print("키 입력: ");
			double height = sc.nextDouble();
			if (height<0 || height>250.0) {
				result="키를 잘못 입력하셨습니다.";
			}else {
				if (!(age>=12 || height >=140.0) ) {
					result="나이 키 모두 적절하지 않음";
				}else {
					if(age<12) {
						result="키는 적절하나 나이가 적절하지 않음";
					}else if (height<140.0) {
						result="나이는 적절하나 키가 적절하지 않음";
					}else {
						result="탑승가능";
					}
		
				}
			}
		}
		
		System.out.println(result);
		*/
		
		
		
		Scanner sc = new Scanner(System.in);
		System.out.print("나이 입력: ");
		int age = sc.nextInt();
		String result;
		
		if(age<0 || age>100) {
			result="나이를 잘못 입력하셨습니다.";
		}else {
			System.out.print("키 입력: ");
			double height = sc.nextDouble();
			
			if (height<0 || height>250.0) {
				result="키를 잘못 입력하셨습니다.";
			}else {
				if (age <12 && height >=140.0) { //나이X, 키 O
					result="키는 적절하나 나이가 적절하지 않음";
				}else if(age >= 12 && height <140.0) {//나이 O, 키 X
					result="나이는 적절하나, 키가 적절하지 않음";
				}else if(age <12 && height <140.0) {//나이 X, 키 X
					result="나이와 키 모두 적절하지 않음";
				}else {
					result="탑승 가능";
				}
				
			}
		}
		System.out.println(result);
		
		
	}
	

	
}

2. switch문 코드

  • switch문
    -식 하나의 결과로 많은 경우의 수를 처리할 때 사용하는 조건문
    -> 식의 결과로 얻은 값과 같은 case 구문이 수행된다.

    switch(식) {
    case 결과값1: 수행코드1; break;
    case 결과값2: 수행코드2; break;
    case 결과값3: 수행코드3; break;
    ...
    default: case를 모두 만족하지 않을 경우 수행하는 코드
    }

package edu.kh.control.condition;

import java.util.Scanner;

public class SwitchExample {
	
	//switch문
	
	public void ex1() {
	    // 키보드로 정수를 입력 받아
        // 1 이면 "빨강색"
        // 2 이면 "주황색"
        // 3 이면 "노란색"
        // 4 이면 "초록색"  
        // 1~4 사이 숫자가 아니면 "흰색" 출력
		
		Scanner sc = new Scanner(System.in);
								//키보드 입력
		System.out.print("정수 입력: ");
		int input = sc.nextInt();
		String result;
		
		/*
		if(input==1) {
			result="빨간색";
		}else if(input==2) {
			result="주황색";
		}else if(input==3) {
			result="노란색";
		}else if(input==4) {
			result="초록색";
		}else {
			result="흰색";
		}
		*/
			  //여러 값이 나오는 식
		switch(input) {
		
		case 1: result ="빨간색"; break;
		//input에 입력된 값이 1인 경우(case)
		//result 변수에 "빨간색"을 대입하고 switch문을 멈춤(break)
		case 2: result ="주황색"; break;
		case 3: result ="노란색"; break;
		case 4: result ="초록색"; break;
		
		default: result="흰색"; break;
		
		}
		System.out.println(result);
	}
	public void ex2() {
		//정수 입력받아 4팀으로 나누기
		
		Scanner sc = new Scanner(System.in);
		
		System.out.print("번호 입력: ");
		int input = sc.nextInt();
		
		String team;
		
		switch(input%4) { //1, 2, 3, 0
		
		case 1: team="백팀"; break;
		case 2: team="홍팀"; break;
		case 3: team="청팀"; break;
		
		default: team="흑팀";
		}
		System.out.println(team + "입니다.");
	}
	public void ex3() {
		
		//switch문에서 break 역할
		
		//달 입력 시 계절 판별(switch버전)
		
		Scanner sc = new Scanner(System.in);
		System.out.print("달(월) 입력: ");
		int month = sc.nextInt();
		String season; 
		
		
		switch(month) {
		
		case 3: case 4: case 5: season ="봄"; break;
		case 6: case 7: case 8: season ="여름"; break;
		case 9: case 10: case 11: season ="가을"; break;
		case 12: case 1: case 2: season ="겨울"; break;
		
		default : season="잘못 입력하셨습니다."; break;
		}
		System.out.println(season);
		
	}
    public void ex4() {
		//정수 2개와 연산자( +-*/%) 1개를 입력받아 결과 출력
		//)ex
		//정수1 입력: 5
		//연산자 입력: *
		//정수2 입력: 2
		
		//계산 결과: 5*2=10
		
		Scanner sc = new Scanner(System.in);
		System.out.print("정수1 입력: ");
		int num1 = sc.nextInt();
		
		System.out.print("연산자 입력: ");
		//sc.nextChar(); 스케너는 문자 하나(char)를 입력 받는 기능이 없다.
		String op = sc.next(); //다음에 입력되는 한 단어(String읽어오기)
		//          (char)'a'  !=   (String)"a"
		
		System.out.print("정수2 입력: ");
		int num2 = sc.nextInt();
		
		//case에 작성되는 값은 switch 식의 겨로가값 자료형의 리터럴 표기법이다.
		switch(op) {
		case "+": System.out.printf("%d + %d = %d\n", num1, num2, num1+num2); break;
		case "-": System.out.printf("%d - %d = %d\n", num1, num2, num1-num2); break;
		case "*": System.out.printf("%d * %d = %d\n", num1, num2, num1*num2); break;
		case "/": 
			if(num2==0) { //오류 발생되는 경우
				System.out.println("0으로 나눌 수 없습니다."); 
			}else {
				System.out.printf("%d / %d = %d\n", num1, num2, num1/num2); 
			}
			break; //break 주의
		case "%": System.out.printf("%d %% %d = %d\n", num1, num2, num1%num2); break;
		default : System.out.println("존재하지 않는 연산자입니다."); break;
		
		}
    }
}

3. Run

package edu.kh.control.condition;

public class ConditionRun {
	
	public static void main(String[] args) {
		
		ConditionExample condition = new  ConditionExample();
		
		condition.ex1();
		/*
		 정수 입력: -6
		 양수가 아닙니다.
		 */
		
		condition.ex2();
		/*
		정수 입력: 10
		짝수입니다.
		 */
		
		condition.ex3();
		/*
		정수 입력: -100
		음수입니다.
		 */
		
		condition.ex4();
		/*
		달 입력: 9
		가을입니다.
		 */
		
		condition.ex5();
		/*
		나이 입력: 20
		성인입니다.
		 */
		
		condition.ex6();
		/*
		점수 입력: -100
		잘못 입력하셨습니다.
		 */
		
		condition.ex7();
		/*
		나이 입력: 66
		키 입력: 3
		적정 키가 아닙니다.
		 */
		
		condition.ex8();
		/*
		나이 입력: 9
		키 입력: 140.0
		키는 적절하나 나이가 적절하지 않음
		 */
		
		SwitchExample switchEx = new SwitchExample();
		
		switchEx.ex1();
		/*
		정수 입력: 3
		노란색
		 */
		
		switchEx.ex2();
		/*
		번호 입력: 99
		청팀입니다.
		 */
		
		switchEx.ex3();
		/*
		 달(월) 입력: 5
		 봄
		 */
         
        switchEx.ex4();
		/*
		정수1 입력: 4
		연산자 입력: /
		정수2 입력: 0
		0으로 나눌 수 없습니다.
		 */
	}

}
profile
개발 일지

0개의 댓글