본문 바로가기
국비과정

국비 6일차 - 삼항 연산자, 조건문(if문, swith문)

by Jeong.dev 2022. 4. 2.

- 문자열 비교는 동등비교 (==)가 아닌 equalse 메소드 사용해야 함

- if-else if-else문에서 else 구문은 조건식이 안들어감

- ! // 논리값을 반대로(논리 부정)

- return; // 호출했던 메소드로 다시 돌아감

- scanner.nextLine();  // 기본 자료형 받고 문자열 받을 경우 버퍼 비워주기

- String.valueof() 메소드 //  기본 자료형 -> 문자열 변경

 

1. 삼항 연산자

	/*
	 * 삼항 연산자
	 * 
	 * 	[표현법]
	 * 		조건식 ? 식1(조건식이 참일 경우 수행) : 식2(조건식이 거짓일 경우 수행);
	 * 
	 *	- 조건식은 주로 비교, 논리 연산자가 사용

	 */
     
     ex)
     result = ((ch >= 'A') && (ch <= 'Z')) ? "알파벳 대문자이다." : "알파벳 대문자가 아니다.";
     result = (num > 0) ? "양수입니다." : (num ==0) ? "0 입니다." : "음수입니다.";

1.1 예제

	/*
	 * 4. 사용자에게 2개의 정수와 + 또는 -를 입력받아 계산 출력
	 * 	  (단, + 또는 - 외의 문자를 입력하는 경우 "잘못 입력했습니다." 출력)
	 * 		예시)
	 * 		첫 번째 수 > 3
	 * 		두 번째 수 > 4
	 * 		연산자 입력(+ 또는 -) > +
	 * 
	 * 		3 + 4 = 7
	 */
	public void practice4() {
		int num1 = 0;
		int num2 = 0;
		String result = null;
		char op = '\u0000';
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("첫 번째 수 > ");
		num1 = scanner.nextInt();
		
		System.out.print("두 번째 수 > ");
		num2 = scanner.nextInt();
		scanner.nextLine(); // 기본 자료형 받고 문자열 받을 경우 버퍼 비워주기
		
		System.out.print("연산자 입력(+ 또는 -)");
		op = scanner.nextLine().charAt(0);
		
		result = (op == '+') ? String.valueOf(num1 + num2) : 
					(op == '-') ? String.valueOf(num1 - num2) : "잘못 입력했습니다.";
		// String.valueof() 메소드 : 기본 자료형 -> 문자열 변경
		
		System.out.printf("%d %c %d = %s", num1, op, num2, result);
		scanner.close();
	}

 

2. switch문

	/*
	 * switch문
	 * 
	 * 	[표현법]
	 * 		switch(결과값){ 
	 * 			case 값1:
	 * 				.. 실행 코드 ..
	 * 				break;
	 * 			case 값2:
	 * 				.. 실행 코드 ..
	 * 				break;
	 * 			case 값3:
	 * 				.. 실행 코드 ..
	 * 				break;
	 * 			...
	 * 			default : 
	 * 				위 조건을 모두 만족하지 않을 경우 실행하게 되는 코드
	 * 			
	 * 		}
	 * 
	 *   - 실행하고 자동으로 빠져나가지 못한다. (break가 필요하다.)
     	 *   - 결과값에 정수, 문자, 문자열 가능하다.
	 */

2.1 예제

	public void method1() {
		String fruit = null;
		int price = 0;
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("과일 이름 > ");
		fruit = scanner.nextLine();
		
		switch(fruit) {
			case "수박" : 
				price = 8000;
				
				break;
			case "사과" :
				price = 1500;
				
				break;
			default :
				System.out.println("판매하지 않는 과일입니다.");
				scanner.close();
				
				return;  
		}
		System.out.printf("%s의 가격은 %d원 입니다.", fruit, price);
		scanner.close();
	}

- default 블록 기억!

scanner.close();

return;

 

댓글