2023-12-08 (2일차) - 논리연산자, 조건문(if, else if, else)

민짱·2024년 1월 7일
post-thumbnail

📅2023. 12. 08 2일차


🎨 Java

조건문

  • if문 (조건문){실행문}

    • true일때 실행. false일 때 실행불가.
  • 추가옵션 : else

    • if (조건문){실행문1} else {실행문2}
      • 실행문2는 조건이 거짓일 때 실행된다.
      • 양자택일이 된다.
    • 연속된 if-else if-else 문 (여러 조건을 하나씩 모두 검사)
      • 조건이 여러 개인 if문
      • else if 문 개수는 제한 없다.
      • 여러 개의 조건 중 true 인 else if 블록만 실행하고 전체 if 문을 빠져나온다.
      • 맨 마지막의 else 블록은 모든 조건식이 false 인 경우 실행되고 전체 if 문이 종료된다.
  • 연산자 우선순위
    우선순위과 높은 것이 먼저 실행된다.
    사칙연산자가 논리연산자보다 우선순위가 높다.
    *, /는 다른 사칙연산자 보다 우선순위가 높다.
    &&, ||는 다른 논리 연산자 보다 우선순위가 낮다.
    앞에 있는게 먼저 실행된다.

  • 증감 연산자
    i++; => i 의 값을 1 증가 시킨다.
    i--; => i 의 값을 1 감소 시킨다.
    i = i + 2; => i 의 값을 2 증가 시킨다.
    i += 2; => i 의 값을 2 증가 시킨다.(위와 같은 표현)
    i = i - 2; => i 의 값을 2 감소 시킨다.
    i -= 2; => i 의 값을 2 감소 시킨다.(위와 같은 표현

📋 문제 풀이

// 문제 : 할인 대상인지 아닌지 출력해주세요.
// 조건 : 나이가 19세 이하이거나 60세 이상이면 할인 대상입니다.
// 조건 : 출력예시 처럼 출력되어야 합니다.
// 조건 : `구현시작` 부분만 수정 할 수 있습니다.
// 조건 : 4가지 이상의 방법으로 풀어야 합니다.
// 조건 : 그 중 2가지 방법은 `&&, ||`없이 풀어야 합니다.

class Main {
  public static void main(String[] args) {
    int age = 20; // 이 값을 바꿔가면서 실행해보세요.

    System.out.println("당신의 나이는 " + age + "살 입니다.");

    // 구현시작

    // 출력 => 할인대상입니다. 또는 할인 대상이 아닙니다.
  }
}

==case 1==

class Main {
  public static void main(String[] args) {
    int age = 20; // 이 값을 바꿔가면서 실행해보세요.

    System.out.println("당신의 나이는 " + age + "살 입니다.");

    // 구현시작
    System.out.println("== 정답 v1 ==");
    if ( age <= 19 ) {
      System.out.println("할인 대상입니다.");
    }

    if ( age >= 60 ) {
      System.out.println("할인 대상입니다.");
    }

    if ( age >= 20 ) {
      if ( age < 60 ) {
        System.out.println("할인 대상이 아닙니다.");
      }
    }

==case 2==

class Main {
	public static void main(String[] args) {
		int age = 20; // 이 값을 바꿔가면서 실행해보세요.

		System.out.println("당신의 나이는 " + age + "살 입니다.");

		// 구현시작
		System.out.println("== 정답 v2 ==");

		// if 문들을 else 로 묶어서 하나로 만들 수 있다.
		// 마지막에는 else 를 쓰고 조건을 안쓰면 위의 모든 조건이 틀렸을 때 실행되는 블록을 만들 수 있다.
		if (age <= 19) {
			System.out.println("할인 대상입니다.");
		} else if (age >= 60) {
			System.out.println("할인 대상입니다.");
		} else {
			System.out.println("할인 대상이 아닙니다.");
		}
	}
}

==case 3==

class Main {
	public static void main(String[] args) {
		int age = 20; // 이 값을 바꿔가면서 실행해보세요.

		System.out.println("당신의 나이는 " + age + "살 입니다.");

		// 구현시작
		System.out.println("== 정답 v3 ==");

		if (age <= 19 || age >= 60) {
			System.out.println("할인 대상입니다.");
		} else {
			System.out.println("할인 대상이 아닙니다.");
		}

		System.out.println("== 정답 v4 ==");

		if (age > 19 && age < 60) {
			System.out.println("할인 대상이 아닙니다.");
		} else {
			System.out.println("할인 대상입니다.");
		}

		// 출력 => 할인대상입니다. 또는 할인 대상이 아닙니다.
	}
}

switch/case 문

  • switch/case 문은 if 문과 비슷하지만 좀 더 일정한 형식이 있는 조건.판단문이다.
  switch(입력변수) {
    case 입력값1: ...
         break;
    case 입력값2: ...
         break;
    ...
    default: ...
         break;
}
  • 입력 변수의 값과 일치하는 case 입력값(입력값1, 입력값2, …)이 있다면 해당 case 문에 속한 문장들이 실행된다. case 문마다 break라는 문장이 있는데 해당 case 문을 실행한 뒤 switch 문을 빠져나가기 위한 것이다. 만약 break 문이 빠져 있다면 그 다음의 case 문에 속한 문장들이 실행된다.

서식 지정자 (format specifier)

  • 서식지정자
서식지정자설명
%dint 정수형 문자
%ffloat, double 실수형 문자
%sString 문자열
%cchar 문자
%o8진 정수 출력
%x16진 정수 출력
%%퍼센트 표시
%n개행문자를 표시

public class Main {
	public static viod main(String[] args){
      double pi = 3.141592;
      int num = 30;
      String str = "Hello Java"
      char c = 'A'

      System.out.printf("%f %d %s %c",pi,num,str,c);
	}
}

🔔 TODO

  • 출력, 변수, 조건문 복습
    -프로그래머스 입문 기준 while 전까지

💡느낀점

첫 if 문을 보면서 아직 먼가 낯설고 새롭지만 재밌다. 복습을 통해 if문을 마스터해보자~

0개의 댓글