4주 차 자바 강의 - SangwooRyou/26_Java GitHub Wiki

연습 문제

연습 문제 1

나이를 입력 받고, 18세 미만이면 "청소년 관람 불가"를 출력하시오.

if(age < 18){ // 18세 미만일 때
   System.out.print("청소년 관람 불가");
}

연습 문제 2

필기 시험 점수 80점 이상, 토익 점수 850점 이상일 때 "합격", 아니면 "불합격"을 출력하시오.

if(test >= 80 && TOEIC >= 850){ // 조건 두 개 중첩 -> &&로 묶음.
   "합격";
} 
else {
   "불합격";
}

연습 문제 3

나이에 따른 차감 요금을 작성하시오.

// 굳이 A이상 B이하일 때, 중첩할 필요 X. 
// 상위 조건에 걸리지 않으면 내려가므로 19부터 13, 7 ... 이용.
if(age >= 19) 
else if(age >= 13)
else if(age >= 7)

// balance의 초기화가 10,000으로 돼있음.
// 나이 별로 주어진 값을 balance -= price; 
// 이후 balance를 초기화해야 함.

4주 차 강의 내용

가위바위보 게임

철수와 영희의 입력을 각각 받아 승리 여부 정하기!

메인 아이디어

  • 처음에 비기는 경우를 따로 빼놓은 뒤,
  • 철수가 낸 결과에 따라 가위, 바위, 보 분기를 나누고,
  • 영희의 값을 if else로 나누어 결과를 정한다.

핵심 메소드

  • 문자열은 ==가 아닌 equals 메소드로 비교한다.

비기는 경우

if(RSP1.equals(RSP2)) {
			System.out.println("비겼습니다!");
		}

철수가 가위를 내는 경우

		else if(RSP1.equals("가위")) {
			if(RSP2.equals("바위")) {
				System.out.println("영희 승리!");
			}
			else {
				System.out.println("철수 승리!");
			}
		}

철수가 바위를 내는 경우

		else if(RSP1.equals("바위")) {
			if(RSP2.equals("보")) {
				System.out.println("영희 승리!");
			}
			else {
				System.out.println("철수 승리!");
			}
		}

철수가 보자기를 내는 경우

		else {
			if(RSP2.equals("가위")) {
					System.out.println("영희 승리!");
				}
			else {
				System.out.println("철수 승리!");
			}		
		}

Switch-Case문

  • 특정 조건을 switch에 걸고, case를 구성해 조건을 검사.
  • 이때 걸리는 게 없다면 default로 결정이 되고,
  • break가 없다면 항상 default까지 가기 때문에 break를 꼭 넣어줘야 함.
switch(order) {
		case "에스프레소":
		case "카푸치노":
		case "카페라떼":
			price = 3500;
			break;
		case "아메리카노":
			price = 2000;
			break;
		default :
			System.out.println("메뉴에 없습니다.");
		}

에스프레소, 카푸치노, 카페라떼의 가격은 똑같기 때문에 그냥 넘긴 후 price를 3500으로 지정. 아메리카노는 가격이 다르기 떄문에 따로 구성. default는 없는 메뉴를 골랐을 때 출력.

반복문

  • 반복문엔 초기식/조건식/증감식이 필요함.
  • continue를 통해 특정 분기를 건너뛸 수 있음.

for문

public static void main(String[] args) {
		
		// 1부터 10까지 합 계산
		int sum = 0;
		
		for(int i=1; i<=10; i++) {
			sum += i;
		}
		
		System.out.println(sum);
	}

while문

public static void main(String[] args) {
		int i = 1, sum = 0;
		
		while(i<=10) {
			sum+=i;
			i++;
		}

		System.out.println(sum);
	}

이중 for문 : 구구단 연산

public static void main(String[] args) {
		for (int i = 1; i <= 9; i++) {
			System.out.print(i + "단 : ");
			
			for (int j = 1; j <= 9; j++) {
				System.out.print(i + " * " + j + " = " + i * j + " ");
			}
			
			System.out.println();
		}

	}