자바

JAVA STEP 15. if&switch

IT의 큰손 2023. 2. 8. 17:56
728x90

프로그램

- 수많은 문장의 집합

- 명령어들이 미리 정해진 제어의 흐름에 따라 실행(위 > 아래)

 

제어문

- 그 흐름을 통제하는 명령어

- 조건 제어, 반복 제어, 분기 제어

- 알고리즘

 

1. 조건문

- 개발자가 조건을 제시한 후 프로그램 흐름을 제어한다.

a. if

b. switch

 

2. 반복문

- 특정 코드를 개발자가 원하는 횟수만큼 반복 실행한다.

a. for

b. while

c. do while

d. for

 

3. 분기문

- 개발자가 코드의 흐름을 원하는 곳으로 이동한다.

a. break

b. continue

c. goto(JDK 1.5 폐기)

 

1.a 조건문

  • 조건을 제시 후 프로그램 흐름을 제어한다.
  • 조건식 > boolean 값을 가진다.
  • 기본 조건문 양식
    •  
if문
		  	- 조건을 제시 후 프로그램 흐름을 제어한다.
		  	- 조건식 > boolean 값을 가진다. 
		  	
		  	기본 조건문 
		  	
		  	if (조건식) {
		  		실행문;
		  	}
		 	
		 	if (조건식) {
		  		실행문;
		  	} else {
		  		실행문;
		  	}
		  	
		  	if (조건식) {
		  		실행문;
		  	} else if (조건식) {
		  		실행문;
		  	}
		  	
		  	if (조건식) {
		  		실행문;
		  	} [else if (조건식) {
		  		실행문;
		  	}] * N
		  	[else {
		  		실행문;
		  	}]
		  	[] : 사용해도 되고, 생략해도 된다는 의미.
		  	* N : 횟수 마음대로 할 수 있다는 의미.
  • if문 예제
  •  
public static void m2() {
		
		//요구사항] 나이를 입력받아 성인, 미성년자인지 출력하시오.
		Scanner scan = new Scanner(System.in);
		
		System.out.print("나이를 입력하세요 : ");
		
		int age = scan.nextInt();
		
		System.out.println(age >= 19 ? "성인" : "미성년자");
		
		if (age >= 19) {
			System.out.println("성인입니다.");
		} else {
			System.out.println("미성년자입니다.");
		}
		
		
	}//m2
	
	public static void m3() {
		
		//요구사항] 직장인, 출근, 기상시간 입력, 교통수단 결정
		Scanner scan = new Scanner(System.in);
		
		System.out.print("몇시에 일어나셨습니까?(시) : ");
		int hour = scan.nextInt();
		
		
		if(hour <= 6) {
			System.out.println("지하철을 타고 출근합니다.");
		} else if(hour <= 7) {
			System.out.println("버스를 타고 출근합니다.");
		} else if(hour <= 9) {
			System.out.println("택시를 타고 출근합니다.");
		} else {
			System.out.println("이미 늦었습니다. 휴가를 씁니다.");
		}
		
		
	}//m3
	
	public static void m4() {
		
		Scanner scan = new Scanner(System.in);
		
		int sum = 0; //누적 변수 
		
		//설문조사
		System.out.println("A. 무슨색을 좋아합니까?");
		System.out.println("1. 노란색");
		System.out.println("2. 빨간색");
		System.out.println("3. 파란색");
		
		System.out.print("선택 : ");
		
		int sel = scan.nextInt();
		
		if (sel == 1) {
			sum += 10;
		} else if (sel == 2) {
			sum += 5;
		} else if (sel == 3) {
			sum += 3;
		}
		
		System.out.println("B. 어떤 언어를 선호합니까?");
		System.out.println("1. JAVA");
		System.out.println("2. C#");
		System.out.println("3. Python");
		
		System.out.print("선택 : ");
		
		sel = scan.nextInt();
		
		if (sel == 1) {
			sum += 5;
		} else if (sel == 2) {
			sum += 10;
		} else if (sel == 3) {
			sum += 3;
		}
		
		System.out.println("완료되었습니다.");
		System.out.println("[결과]");
		
		if (sum > 15) {
			System.out.println("당신은 진취적인 개발자입니다.");
		} else if (sum <=15 && sum >=10) {
			System.out.println("당신은 평범한 개발자입니다.");
		} else {
			System.out.println("다른일을 찾아보세요~");
		}
		
	}//m4

1.b switch 문

  • 정수, 문자, 문자열을 입력 받을 수 있음.
  • 기본 조건문 양식
    •  
switch문, switch case문
	  	
	  	switch(조건) {
	  		case 값:
	  			실행문;
	  			break;
	  		[case 값:
	  			실행문;
	  			break;] x N
	  		[default:
	  			실행문;
	  			break;]
	  	}
  • switch문 예제
  •  
public static void m2() {
		
		//요구사항] 자판기
		//- 메뉴 출력 > 음료 선택 > 가격 출력
		//- 가격 인상 > 사이다 700원 > 앞으로 계속 콜라와 사이다는 동일한 가격으로 유지
		//- 800원으로 인상
		
		Scanner scan = new Scanner(System.in);
		
		System.out.println("======================");
		System.out.println("        자판기");
		System.out.println("======================");
		System.out.println("1. 콜라");
		System.out.println("2. 사이다");
		System.out.println("3. 비타500");
		System.out.println("----------------------");
		System.out.print("선택(번호를 입력하세요) : ");
		
		String input = scan.nextLine();
		
//		if(input.equals("1")) {
//			System.out.println("800원 입니다.");
//		} else if (input.equals("2")) {
//			System.out.println("800원 입니다.");
//		} else if (input.equals("3")) {
//			System.out.println("500원 입니다.");
//		}
		
		if(input.equals("1") || input.equals("2")) {
			System.out.println("800원 입니다.");
		} else if (input.equals("3")) {
			System.out.println("500원 입니다.");
		}
		
//		switch (input) {
//			case "1" :
//				System.out.println("800원 입니다.");
//				break;
//			case "2" :
//				System.out.println("800원 입니다.");
//				break;
//			case "3" :
//				System.out.println("500원 입니다.");
//				break;
//		}
		
		switch (input) {
		case "1" : //이렇게 되면 case 1과 2가 하나의 블럭을 공유하게 되는 것임.
		case "2" :
			System.out.println("800원 입니다.");
			break;
		case "3" :
			System.out.println("500원 입니다.");
			break;
	}
		
	}//m2
	
	public static void m3() {
		
		//요구사항] 사용자가 월을 입력 > 해당 월의 마지막 일?
		int lastDate = 0;
		
		int month = 5;
		
		switch (month) {
			case 1 :
			case 3 :
			case 5 :
			case 7 :
			case 8 :
			case 10 :
			case 12 :
				lastDate = 31;
				break;
			case 2:
				lastDate = 28;
				break;
			case 4 :
			case 6 :
			case 9 :
			case 11 :
				lastDate =30;
				break;
		}
		System.out.printf("입력한 %d월의 마지막 날짜는 %d일입니다.\n",  month, lastDate);
		
	}
	
	public static void m4() {
		//요구사항] 인터넷 쇼핑몰 > 상품 구매 > 옵션(패키지)
		//1. 노트북
		//2. 노트북 + 마우스 패드
		//3. 노트북 + 마우스 패드 + 웹캠
		
		Scanner scan = new Scanner(System.in);
		System.out.print("선택: ");
		
		int input = scan.nextInt();
		
		switch (input) {
			case 3 :
				System.out.println("웹캠");
			case 2 :
				System.out.println("마우스패드");
			case 1 :
				System.out.println("노트북");
				break;
			
		}
		
	}

 

728x90