본문 바로가기

항해 99/Java

Java 기초 2 - 연산자, 조건문

연산자

산술 연산자

연산자 시작

+, - , * , / 와 같이 계산을 수행하는 기호를 연산자라고 함.

 

연산자 종류

  • 산술 연산자 : +, - , * , / , % (나머지 연산자)
  • 증감(증가 및 감소)  연산자: ++, --
  • 비교 연산자 : == , != , >, < , >=, <=
  • 논리 연산자 : &&(AND), ||(OR), !(NOT)
  • 대입 연산자 : = , +=, -=, *=, /= , %=
  • 삼항 연산자: ? :

연산자와 피연산자

// 연산자: 연산 기호 + , -
// 피연산자: 연산 대상 3, 4, a, b
3 + 4
a + b
  • 연산자(operator): 연산 기호
  • 피연산자(operand): 연산 대상

산술 연산자

  • + (더하기)
  • - (빼기)
  • * (곱하기)
  • / (나누기)
  • % (나머지)
package operator;

public class Operator1 {
    public static void main(String[] args) {
        int a = 5;
        int b = 2;

        int sum = a + b;
        System.out.println("a + b = " + sum);

        int diff = a - b;
        System.out.println("a - b = " + diff);

        int mul = a * b;
        System.out.println("a * b = " + mul);

        int div = a / b;
        System.out.println("a / b = " + div);

        int mod = a % b;
        System.out.println("a % b = " + mod);
    }

}
  • 나머지 연산자(%)
    • 이름 그대로 나머지를 구하는 연산자이다. `5 / 2` 는 몫이 2 나머지가 1이다. 따라서 나머지 연산자 `5 %
      2` 의 결과는 `1` 이 된다.
    • 나머지 연산자는 실무와 알고리즘 모두 종종 사용되므로 잘 기억해두자
  • 주의! 0으로 나누기
    • `10 / 0` 과 같이 숫자는 0으로 나눌 수 없다. (수학에서 허용하지 않음) 프로그램에서 오류가 발생함.

문자열 더하기

문자열에도 + 연산자를 사용할 수 있다. 문자열에 + 연산자를 사용하면 두 문자를 연결할 수 있다.

package operator;

public class Operator2 {
    public static void main(String[] args) {
    	// 문자열과 문자열 더하기 1
        String result = "hello" + "wrold";
        System.out.println(result);
		
        // 문자열과 문자열 더하기 2
        String s1 = "string1";
        String s2 = "string2";
        String result2 = s1 + s2;
        System.out.println(result2);
		
        //문자열과 숫자 더하기 1
        String result3 = "a + b = " + 10;
        System.out.println(result3);

		// 문자열과 숫자 더하기 2
        int num = 20;
        String str = "a + b = ";
        String result4 = str + num;
        System.out.println(result4);
    }
}

 

문자열과 숫자 더하기

  • 자바에서 문자와 숫자를 더하면 숫자를 문자열로 변경한 다음에 서로 더한다.
  • 변수에 담겨 있어도 문자와 숫자를 더하면 문자가 된다.

연산자 우선순위

자바도 우선순위가 높은 연산자부터 먼저 계산을 실행한다.

package operator;

public class Operator3 {
    public static void main(String[] args) {
        int sum1 = 1 + 2 * 3;
        int sum2 = (1 + 2) * 3;
        System.out.println("sum1 = " + sum1);
        System.out.println("sum2 = " + sum2);
    }
}

 

  • 연산자 우선순위를 변경하려면 수학과 마찬가지로 괄호 ()를 사용하면 된다.
package operator;

public class Operator4 {
    public static void main(String[] args) {
        int sum3 = 2 * 2 + 3 * 3;
        int sum4 = (2 * 2) + (3 * 3);
        System.out.println("sum3 = " + sum3);
        System.out.println("sum4 = " + sum4);
    }
}

 

  • 복잡한 수식의 경우 괄호를 명시적으로 사용하는 것이 더 명확하고 이해하기 쉬움. 코드를 몇자 줄여서 모호하거나 복잡해 지는 것보다 코드가 더 많더라도 명확하고 단순한 것이 유지보수하기 더 좋음.

연산자 우선순위 암기법

  1. 괄호 ( )
  2.  단항 연산자 (예: ++, -- , ! , ~ , new , (type))
  3. 산술 연산자 ( * , / , % 우선, 그 다음에 +, - )
  4. shift 연산자 (<< , >> , >>>)
  5. 비교 연산자 ( < , <= , => , > , instanceof )
  6. 등식 연산자 ( == , !=)
  7. 비트 연산자 (&, ^ , | )
  8. 논리 연산자 ( &&, || )
  9. 삼항 연산자 ( ? : )

1. 상식선에서 우선순위를 사용하자

2. 애매하면 괄호 ()를 사용하자

 

정리

  • 연산자 우선순위는 상식선에서 생각하고, 애매하면 괄호를 사용하자
  • 누구나 코드를 보고 쉽고 명확하게 이해할 수 있어야 한다. 개발자들이 연산자 우선순위를 외우고 개발하는 것이 아니다! 복잡하면 명확하게 괄호를 넣어라!
  • 개발에서 가장 중요한 것은 단순함과 명확함이다! 애매하거나 복잡하면 안된다.

 

증감 연산자

증가 및 감소 연산자를 줄여서 증감 연산자라고 한다.

package operator;

public class OperatorAdd1 {
    public static void main(String[] args) {
        int a = 0;
        
        a = a + 1;
        System.out.println("a = " + a);
        
        a = a + 1;
        System.out.println("a = " + a);
        
        //증감 연산자
        ++a;
        System.out.println("a = " + a);
        
        ++a;
        System.out.println("a = " + a);
    }
}

 

a = a + 1을 ++a 로 간단하게 표현할 수 있는 것이 바로 증감 연산자이다.

 

++ (증가) -- (감소)

 

전위, 후위 증감 연산자

증감 연산자는 피연산자 앞에 두거나 뒤에 둘 수 있으며, 연산자의 위치에 따라 연산이 수행되는 시점이 달라진다.

  • ++a : 증감 연산자를 피연산자 앞에 둘 수 있다. 이것을 앞에 있다고 해서 전위(Prefix) 증감 연산자라 한다.
  • a++ : 증감 연산자를 피연산자 뒤에 둘 수 있다. 이것을 뒤에 있다고 해서 후위(Postfix) 증감 연산자라 한다.
package operator;

public class OperatorAdd2 {
    public static void main(String[] args) {
        // 전위 증감 연산자
        int a = 1;
        int b = 0;

        b = ++a; // a 값을 먼저 증가시킴, 그 결과를 b에 대입
        System.out.println("a = " + a + ", b = " +b);

        // 후위 증감 연산자
        a = 1;
        b = 0;

        b = a++; // a의 현재 값을 b에 먼저 대입하고, 그 후 a 값을 증가
        System.out.println("a = " + a + ", b = " +b);
    }
}

 

  • 증감 연산자가 변수 앞에 오는 경우를 전위 증감 연산자라고 하며, 이 경우에는 증감 연산이 먼저 수행된 후 나머지 연산이 수행된다.
  • 증감 연산자가 변수 뒤에 오는 경우를 후위 증감 연산자라고 하며, 이 경우에는 다른 연산이 먼저 수행된 후 증감 연산이 수행된다.

비교 연산자

비교 연산자는 두 값을 비교하는 데 사용한다. 비교 연산자는 주로 조건문과 함께 사용한다

  • == : 동등성 (equal to)
  • != : 불일치 (not equal to)
  • > : 크다 (greater than)
  • < : 작다 (less than)
  • >= : 크거나 같다 (greater than or equal to)
  • <= : 작거나 같다 (less than or equal to)

비교 연산자를 사용하면 참( true) 또는 거짓( false)이라는 결과가 나온다. 참 거짓은 boolean 형을 사용한다

  • = : 대입 연산자, 변수에 값을 대입한다
  • == : 동등한지 확인하는 비교 연산자
  • 불일치 연산자 != , !는 반대
package operator;

public class Comp1 {
    public static void main(String[] args) {
        int a = 2;
        int b = 3;

        System.out.println(a == b);
        System.out.println(a != b);
        System.out.println(a > b);
        System.out.println(a < b);
        System.out.println(a >= b);
        System.out.println(a <= b);

        // 결과물 boolean 변수에 담기
        boolean result = a == b;
        System.out.println(result);
    }
}

 

문자열 비교

문자열이 같은지 비교할 때는 ==이 아니라 .equals() 메서드를 사용한다.

package operator;

public class Comp2 {
    public static void main(String[] args) {
        String str1 = "문자열1";
        String str2 = "문자열2";

        boolean result1 = "hello".equals("hello");
        boolean result2 = str1.equals("문자열1");
        boolean result3 = str1.equals(str2);

        System.out.println(result1);
        System.out.println(result2);
        System.out.println(result3);

    }
}

 

논리 연산자

boolean형인 true, false를 비교하는데 사용함.

  • && (그리고) : 두 피연산자가 모두 참이면 참을 반환, 둘중 하나라도 거짓이면 거짓을 반환
  • || (또는) : 두 피연산자 중 하나라도 참이면 참을 반환, 둘다 거짓이면 거짓을 반환
  • ! (부정) : 피연산자의 논리적 부정을 반환. 즉, 참이면 거짓을, 거짓이면 참을 반환
package operator;

public class Logical1 {

    public static void main(String[] args) {
        System.out.println("&&: AND 연산");
        System.out.println(true && true);
        System.out.println(true && false);
        System.out.println(false && false);

        System.out.println("||: OR 연산");
        System.out.println(true || true);
        System.out.println(true || false);
        System.out.println(false || false);

        System.out.println("! 연산");
        System.out.println(!true);
        System.out.println(!false);

        System.out.println("변수 활용");
        boolean a = true;
        boolean b = false;
        System.out.println(a && b);
        System.out.println(a || b);
        System.out.println(!a);
        System.out.println(!b);

    }
}
  • && : 두 피연산자가 모두 참이어야 `true` 를 반환한다. 둘중 하나라도 거짓이면 `false` 를 반환한다.
  • || : 두 피연산자 중 하나라도 참이면 `true` 를 반환한다. 둘다 모두 거짓이면 `false` 를 반환한다.
  • ! : 피연산자의 논리적 부정을 반환한다. 참이면 거짓을, 거짓이면 참을 반환한다.
package operator;

public class Logical2 {
    public static void main(String[] args) {
        int a = 15;
        // a는 10보다 크고 20보다 작다
        boolean result = a > 10 && a < 20;
        System.out.println("result = " + result);
    }
}
  • 비교 연산자가 먼저 수행되고 논리 연산자가 수행된다.

 

대입 연산자

대입 연산자(=)는 값을 변수에 할당하는 연산자다. 이 연산자를 사용하면 변수에 값을 할당할 수 있다.
예를 들어, int a = 1 는 a 라는 변수에 1 이라는 값을 할당한다.

 

축약(복합) 대입 연산자

산술 연산자와 대입 연산자를 한번에 축약해서 사용할 수 있는데, 이것을 축약(복합) 대입 연산자라 한다.
연산자 종류: += , -= , *= , /= , %=

  • i = i + 3 ▷ i += 3
  • i = i * 4 ▷ i *= 4
package operator;

public class Assign1 {

    public static void main(String[] args) {
        int a = 5;
        a += 3; // 8
        a -= 2; // 6
        a *= 4; // 24
        a /= 3; // 8
        a %= 5; // 3
        System.out.println(a); // 3
    }
}

 

 

문제

package operator;

public class OperatorEx1 {

    public static void main(String[] args) {
        int num1 = 10, num2 = 20, num3 = 30;
        int sum = num1 + num2 + num3;
        int average = sum / 3;
        System.out.println("sum = " + sum);
        System.out.println("average = " + average);
    }
}

package operator;

public class OperatorEx2 {

    public static void main(String[] args) {
        double val1 = 1.5, val2 = 2.5, val3 = 3.5;

        double sum = val1 + val2 + val3;
        double average = sum / 3;
        System.out.println("sum =" + sum);
        System.out.println("average =" + average);
    }
}

package operator;

public class OperatorEx3 {

    public static void main(String[] args) {
        int score = 90;
        boolean result1 = 80 <= score && score <= 100;
        System.out.println(result1);

        score = 79;
        boolean result2 = 80 <= score && score <= 100;
        System.out.println(result2);
    }
}

 

자주 사용하는 연산자

  • 산술 연산자: + , - , * , / , % (나머지)
  • 증가 및 감소 연산자: ++ , --
  • 비교 연산자: == , != , > , < , >= , <=
  • 논리 연산자: && (AND), || (OR), ! (NOT)
  • 대입 연산자: = , += , -= , *= , /= , %=
  • 삼항 연산자: ? :
  • instanceof 연산자: 객체 타입을 확인한다.
  • 그외: new , [] (배열 인덱스), . (객체 멤버 접근), () (메소드 호출)

비트 연산자는 실무에서 거의 사용할 일이 없다. 필요할 때 찾아보자.

  • 비트 연산자: & , | , ^ , ~ , << , >> , >>>

 

 

조건문

if 문 1 - if , else

특정 조건에 따라서 다른 코드를 실행하는 것을 조건문이라 함.

조건문에는 if 문, switch문이 있다.

 

if문

if문은 특정 조건이 참인지 확인하고, 그 조건이 참(true)일 경우 특정 코드 블록을 실행한다.

  • 코드 블록: { } 사이에 있는 코드
package cond;

public class If1 {

    public static void main(String[] args) {
        int age = 10;

        if (age >= 18) {
            System.out.println("성인입니다.");
        }
        if (age < 18) {
            System.out.println("미성년자입니다.");
        }
    }
}

 

else문

else문은 if문에서 만족하는 조건이 없을 때 실행하는 코드를 제공함

package cond;

public class If2 {

    public static void main(String[] args) {
        int age = 20;

        if (age >= 20) {
            System.out.println("성인입니다");
        } else {
            System.out.println("미성년자입니다.");
        }
    }
}

 

If문2 - else if

if 문만 사용할 때의 불필요한 조건 검사를 피하고 코드의 효율성을 향상시킬 수 있음

// if문만 사용할 때
package cond;

public class If3 {

    public static void main(String[] args) {
        int age = 14;

        if (age <= 7) {
            System.out.println("미취학입니다.");
        }
        if (8 <= age && age <= 13) {
            System.out.println("초등학생입니다.");
        }
        if (14 <= age && age <= 16) {
            System.out.println("중학생입니다.");
        }
        if (17 <= age && age <= 19) {
            System.out.println("고등학생입니다.");
        }
        if (20 <= age) {
            System.out.println("성인입니다.");
        }
    }
}


// else if문을 사용할 때
package cond;

public class If4 {

    public static void main(String[] args) {
        int age = 14;
        
        if (age <= 7) {
            System.out.println("미취학입니다.");
        } else if (age <= 13) {
            System.out.println("초등학생입니다.");
        } else if (age <= 16) {
            System.out.println("중학생입니다.");
        } else if (age <= 19) {
            System.out.println("고등학생입니다.");
        } else {
            System.out.println("성인입니다.");
        }
    }
}

 

 

if문 3 - if문과 else if문

if 문에 else if 를 함께 사용하는 것은 서로 연관된 조건일 때 사용한다. 그런데 서로 관련이 없는 독립 조건이면
else if 를 사용하지 않고 if 문을 각각 따로 사용해야 한다.

 

if 문에 여러 조건이 있다고 항상 if-else 로 묶어서 사용할 수 있는 것은 아니다. 조건이 서로 영향을 주지 않고 각
각 수행해야 하는 경우에는 else if 문을 사용하면 안되고, 대신에 여러 if 문을 분리해서 사용해야 한다.
여러 독립적인 조건을 검사해야 하는 경우가 그런 상황의 대표적인 예시이다. 즉, 각 조건이 다른 조건과 연관되지 않고,
각각의 조건에 대해 별도의 작업을 수행해야 할 때 이런 상황이 발생한다.

package cond;

public class If5 {

    public static void main(String[] args) {
        int price = 10000;
        int age = 10;
        int discount = 0;

        if (price >= 10000) {
            discount = discount + 1000;
            System.out.println("10000원 이상 구매, 1000원 할인");
        }

        if (age <= 10) {
            discount = discount + 1000;
            System.out.println("어린이 1000원 할인");
        }

        System.out.println(" 총 할인 금액: " + discount + "원");
    }
}
  • 위 조건문처럼 각각의 조건을 검사해야 하는 경우는 if문만 사용해야 한다.
package cond;

public class If6 {

    public static void main(String[] args) {
        int price = 10000;
        int age = 10;
        int discount = 0;

        if (price >= 10000) {
            discount = discount + 1000;
            System.out.println("10000원 이상 구매, 1000원 할인");
        } else if (age <= 10) {
            discount = discount + 1000;
            System.out.println("어린이 1000원 할인");
        } else {
            System.out.println("할인 없음");
        }

        System.out.println("총 할인 금액:" + discount + "원");
    }
}
  • else if 문을 사용하면 첫 번째 조건을 충족한 후 if문을 빠져나오기 때문에 나머지 조건이 충족되어도 적용되지 않는다.

if문 { } 생략

if문에 실행할 명령이 하나만 있는 경우에는 { }를 생략할 수 있다. else if, else도 마찬가지이다.

if (true)
	System.out.println("if문에서 실행됨");
   
// 두 번째 문장은 if문과 무관하다. 둘 다 if문에 포함하기 위해서는 {}를 사용해야 한다.   
if (false)
    System.out.println("if문에서 실행됨");
    System.out.println("if문에서 실행 안됨");
    
if (false) {
    System.out.println("if문에서 실행됨");
    System.out.println("if문에서 실행 안됨");
}

 

일반적으로 if문의 명령이 한개만 있을 경우에도 다음과 같은 이유로 중괄호를 사용하는 것이 좋다.

  • 가독성: 중괄호를 사용하면 코드를 더 읽기 쉽게 만들어 준다. 조건문의 범위가 명확하게 표시되므로 코드의 흐름
    을 더 쉽게 이해할 수 있다.
  • 유지보수성: 중괄호를 사용하면 나중에 코드를 수정할 때 오류를 덜 발생시킬 수 있다. 예를 들어, if 문에 또 다
    른 코드를 추가하려고 할 때, 중괄호가 없으면 이 코드가 if 문의 일부라는 것이 명확하지 않을 수 있다.

 

Switch문

switch문은 if문을 조금 더 편리하게 사용할 수 있는 기능.

if문은 비교 연산자를 사용할 수 있지만, switch문은 단순히 값이 같은지만 비교할 수 있다.

switch (조건식) {
case value1:
// 조건식의 결과 값이 value1일 때 실행되는 코드
break;
case value2:
// 조건식의 결과 값이 value2일 때 실행되는 코드
break;
default:
// 조건식의 결과 값이 위의 어떤 값에도 해당하지 않을 때 실행되는 코드
}
  • 조건식의 결과 값이 어떤 case 의 값과 일치하면 해당 case 의 코드를 실행한다.
  • break 문은 현재 실행 중인 코드를 끝내고 switch 문을 빠져나가게 하는 역할을 한다.
  • 만약 break 문이 없으면, 일치하는 case 이후의 모든 case 코드들이 순서대로 실행된다.
  • default 는 조건식의 결과값이 모든 case 의 값과 일치하지 않을 때 실행된다. if 문의 else 와 같다.
    default 구문은 선택이다.
  • if , else-if , else 구조와 동일하다.
// if문 사용
package cond;

public class Switch1 {

    public static void main(String[] args) {
        int grade = 2;

        int coupon;
        if (grade == 1) {
            coupon = 1000;
        } else if (grade == 2) {
            coupon = 2000;
        } else if (grade == 3) {
            coupon = 3000;
        } else {
            coupon = 500;
        }
        System.out.println("발급받은 쿠폰: " + coupon);
    }
}


// switch문 사용
package cond;

public class Switch2 {

    public static void main(String[] args) {
        int grade = 2;

        int coupon;
        switch (grade) {
            case 1:
                coupon = 1000;
                break;
            case 2:
                coupon = 2000;
                break;
            case 3:
                coupon = 3000;
                break;
            default:
                coupon = 500;
        }
        System.out.println("발급받은 쿠폰: " + coupon);
    }
}

// break문이 없는 경우
package cond;

public class Switch3 {

    public static void main(String[] args) {
        int grade = 2;

        int coupon;
        switch (grade) {
            case 1:
                coupon = 1000;
                break;
            case 2:
            case 3:
                coupon = 3000;
                break;
            default:
                coupon = 500;
        }
        System.out.println("발급받은 쿠폰: " + coupon);
    }
}
  • break문이 없는 경우 case2가 실행되고도 중단하지 않고 다음에 있는 case3의 코드를 실행하고 case3의 break문을 만나 switch문을 빠져나온다.

if문 vs switch문

  • switch 문의 조건식을 넣는 부분을 잘 보면 `x > 10` 과 같은 참 거짓의 결과가 나오는 조건이 아니라, 단순히 값만 넣
    을 수 있다.
  • switch 문은 조건식이 특정 case 와 같은지만 체크할 수 있다. 쉽게 이야기해서 값이 같은지 확인하는 연산만 가능하
    다. (문자도 가능)
  • 반면에 if 문은 참 거짓의 결과가 나오는 조건식을 자유롭게 적을 수 있다. 예) x > 10 , x == 10
  • 정리하자면 swtich 문 없이 if 문만 사용해도 된다. 하지만 특정 값에 따라 코드를 실행할 때는 switch 문을 사용하
    면 if 문 보다 간결한 코드를 작성할 수 있다.

자바 14의 새로운 Switch문

기존 switch문은 if문보다 조금 덜 복잡한 것 같지만, 그래도 코드가 기대보다 깔끔하게 나오지는 않는다.
이런 문제를 해결하고자 자바14부터는 새로운 switch문이 정식 도입되었다.

package cond;

public class Switch3 {

	public static void main(String[] args) {
		//grade 1:1000, 2:2000, 3:3000, 나머지: 500
		int grade = 2;

		int coupon = switch (grade) {
			case 1 -> 1000;
			case 2 -> 2000;
			case 3 -> 3000;
			default -> 500;
		};
		System.out.println("발급받은 쿠폰 " + coupon);
	}
}

 

기존 switch문과의 차이

  • -> 를 사용한다.
  • 선택된 데이터를 반환할 수 있다.

 

삼항 연산자

if문을 사용할 때 단순히 참과 거짓에 따라 값을 구하는 경우가 있다.

// if문 사용
package cond;

public class CondOp1 {

    public static void main(String[] args) {
        int age = 18;
        String status;
        if (age >= 18) {
            status = "성인";
        } else {
            status = "미성년자";
        }
        System.out.println("age = " + age + " status = " + status);
    }
}
  • 예제처럼 단순히 참과 거짓에 따라 특정 값을 구하는 경우 삼황 연산자 또는 조건 연산자라고 불리는 ? : 연산자를 사용할 수 있다. (if문과 비교해서 코드를 단순화 할 수 있다)
// 삼항 연산자 사용
package cond;

public class CondOp2 {

    public static void main(String[] args) {
        int age = 18;
        String status = (age >= 18) ? "성인" : "미성년자";
        System.out.println("age = " + age + " status = " + status);
    }
}

 

삼항 연산자

(조건) ? 참_표현식 : 거짓_표현식
  • 삼항 연산자는 항이 3개라는 뜻이다. 조건 , 참_표현식 , 거짓_표현식 이렇게 항이 3개이다. 자바에서 유일하게 항
    이 3개인 연산자여서 삼항 연산자라 한다. 또는 특정 조건에 따라 결과가 나오기 때문에 조건 연산자라고도 한다.
  • 조건에 만족하면 참_표현식 이 실행되고, 조건에 만족하지 않으면 거짓_표현식 이 실행된다. 앞의 if , else 문
    과 유사하다.
  • if 문 처럼 코드 블럭을 넣을 수 있는 것이 아니라 단순한 표현식만 넣을 수 있다.

단순히 참과 거짓에 따라서 특정 값을 구하는 삼항 연산자를 사용하면 if 문보다 간결한 코드를 작성할 수 있다.

 

연습

// 점수에 따른 학점 출력 if문
package cond.ex;

public class CondEx1 {

    public static void main(String[] args) {
        int score = 90;
        String rank;
        
        if (score <= 60) {
            rank = "F";
            System.out.println("score: " + score);
        } else if (score <= 70) {
            rank = "D";
            System.out.println("score: " + score);
        } else if (score <= 80) {
            rank = "C";
            System.out.println("score: " + score);
        } else if (score <= 90) {
            rank = "B";
            System.out.println("score: " + score);
        } else {
            rank = "A";
            System.out.println("score: " + score);
        }
        System.out.println("출력: 학점은 " + rank + "입니다." );
    }
}

// 거리에 따른 이동수단 선택 if문
package cond.ex;

public class DistanceEx1 {

    public static void main(String[] args) {
        int distance = 160;

        if (distance <= 1) {
            System.out.println("도보를 이용하세요");
        } else if (distance <= 10) {
            System.out.println("자전거를 이용하세요");
        } else if (distance <= 100) {
            System.out.println("자동차를 이용하세요");
        } else {
            System.out.println("비행기를 이용하세요");
        }
    }
}


// 금액에 따른 환전 금액 확인 if문
package cond.ex;

public class ExchangeRateEx {

    public static void main(String[] args) {
        int dollar = -5;

        if (dollar <= 0) {
            System.out.println("잘못된 금액입니다.");
        } else if (dollar == 0) {
            System.out.println("환전할 금액이 없습니다.");
        } else {
            int won = dollar * 1300;
            System.out.println("환전 금액은 " + won + "원입니다.");
        }
    }
}

// 학점에 따른 결과 메시지 출력 switch문
package cond.ex;

public class GradeSwitchEx {

    public static void main(String[] args) {
        String grade = "A";

        switch (grade) {
            case "A" -> System.out.println("탁월한 성과입니다.");
            case "B" -> System.out.println("좋은 성과입니다.");
            case "C" -> System.out.println("준수한 성과입니다.");
            case "D" -> System.out.println("향상이 필요합니다.");
            case "F" -> System.out.println("불합격입니다.");
            default -> System.out.println("잘못된 학점입니다.");
                    }
    }
}

// 영화 평점에 따른 추천 if문
package cond.ex;

public class MovieRateEx {

    public static void main(String[] args) {
        double rating = 9.1;

        if (rating >= 9) {
            System.out.println("어바웃 타임을 추천합니다.");
        }
        if (rating >= 8) {
            System.out.println("토이 스토리를 추천합니다.");
        }
        if (rating >= 7) {
            System.out.println("고질라를 추천합니다.");
        }
    }
}

// 두 숫자 중 큰 숫자를 출력 삼항 연산자
package cond.ex;

public class CondOpEx {

    public static void main(String[] args) {
        int a = 10, b = 20;
        int max = (a > b) ? a : b;
        System.out.println("더 큰 숫자는 "+ max +"입니다.");
    }
}

// 입력된 값의 홀수, 짝수 확인 삼항 연산자
package cond.ex;

public class EvenOddEx {

    public static void main(String[] args) {
        int x = 6;
        String result = (x % 2 == 0) ? "짝수" : "홀수";
        System.out.println("x = " + x + ", " + result + "입니다.");
    }
}

'항해 99 > Java' 카테고리의 다른 글

Java 문법 종합 2주차-2  (0) 2024.01.17
Java 문법 종합 2주차-1  (0) 2024.01.16
Java 문법 종합 1주차  (1) 2024.01.16
Java 기초 3 - 반복문, 스코프, 형변환  (0) 2024.01.15
Java 기초 - Java, 변수  (0) 2024.01.10