JAVA(기본)

(JAVA) 연산자(관계, 논리,빠른평가,삼항)

mynote6676 2025. 4. 11. 13:49
더보기

분류: 비교연산자

 

 

논리연산자

-어떤 상황에서 유용하게 쓸지 생각해보자

 

논리 연산자는 생소하기 꼭 다시 한번 더 확인 복습 할것

package cho3;

/**
 * 논리 연산자 &&,||.!
 * 비교 연산자 (<,<=,..)과 함계 많이 사용
 * 연산의 결과가  true,  false 로 반환 된다.
 */

public class Operation5 {
    // 코드의 진입점
    public static void main(String[] args) {

        int n1 = 100;
        int n2 = 200;
        //논리 곱(&&)
        //                 T    &&     T
        boolean result1 = (n1 > 0) && (n2 > 0);
        System.out.println("result1 : " + result1);

        //                 T    &&     F
        boolean result2 = (n1 > 0) && (n2 < 0);
        System.out.println("result2 : " + result2);

        // 2.  논리 합 (||)
        //                    T           F
        boolean result3 = (n1 > 0) || (n2 < 0);
        System.out.println("result3 : "  + result3);

        boolean result4 = (n1 < 0) || ( n2 < 0) ;
        System.out.println("result4 : " + result4);

        // 3. 부정(!)
        System.out.println("부정 연산 확인 : " + !result4);

        // 로깅 ㅜ-> 값 확인을 해 본다.
        System.out.println("실제 변수 값 확인 : " + result4);


    }// end of main
}//end of class

 

package cho3;

/**
 * 논리 연산자 복습
 */

public class Operation6 {
    // 코드의 진입점
    public static void main(String[] args) {
        // 쇼핑물 회원 정보를 설정

        int userAge = 20; //사용자의 나이
        int cartTotal = 50_000; // 장바구니 총액(원) 정수에 숫자 단위에 _언더바 사용가능
        //System.out.println(cartTotal);
        boolean isMember = true; //회원 여부
        int couponCount = 2; //고유쿠폰 갯수

        // 1. 무료 배송 조건 : 장바구니 총액이 3만원 이상 , 회원이여야 함
        boolean freeShipping = (cartTotal >= 30_000) && isMember;
        System.out.println("무료 배송 가능 여부 : " + freeShipping);

        //할인 조건 : 나이가 19세 이상이거나 쿠폰이 1개 이상 있어야 함
        boolean canDiscount = (userAge >= 19) || (couponCount >= 1);
        System.out.println("할인 가능 조건 여부 : " + canDiscount);

        // 3. 구매 제한 조건 : 나이가 19세 미만이고 회원이 아닌 경우에 구매 제한 ->&&
        //                              F            &&      F
        boolean purchaseRestricted = (userAge < 19) && (!isMember);

        //4. 이벤트 참여 조건 : 장바구니 총액이 5만원 미만이거나 쿠폰이 3개 미만 참여 가능
        boolean canJoinEvent = (cartTotal < 50_000) || (couponCount < 3);
        System.out.println("이벤트 참여 가능 여부 : " + canJoinEvent);

        //연습 문제
        //철수가 일본에 여행을 가려고 한다. 비행기에 가지고 탈 수 있는 수화물의 최대 무게는 10kg이고
        //위탁 수화물의 초대 무게는 25kg제한이다.
        //철수는 지금 백팩의 무게가 12kg이고 위탁수화물이 20kg이다.
        //철수는 지금 당장 탑승가능한지 확인 가능하고 조건이 맞지 않다면 가방의 무게를 맞춰서
        //다시 확인 하자
        int bag = 12;
        int carr = 20;



    }// end of main
}//end of class

 

 

빠른 평가(short-circuit evaluation)는 논리 연산에서 첫 번째 조건이 결과를 결정하는 경우, 두 번째 조건을 평가하지 않는 자바의 특성입니다.

  • 논리 곱(&&)은 두 항의 결과가 모두 true일 때만 결과가 true 앞의 항의 결과가 false이면 뒤 항의 결과를 평가하지 않음
  • 논리 합(||)은 두 항의 결과가 모두 false일 때만 결과가 false
  • 앞의 항의 결과가 true이면 뒤 항의 결과를 평가하지 않음

 

package cho3;

/**
 * 빠른 평가란?
 * 논리 연산에서 첫 번째 조건이 결과를 결정 할 경우
 * 두번째 조건을 평가하지 않는 것
 */

public class Operation8 {
    // 코드의 진입점
    public static void main(String[] args) {

        int number = 5;
        int index = 0;

        //논리 합 (||) 에서 빠른 평가가 되는 식을 만들어 보자.
        //빠른 평가란
        //논리 연산에서 첫번째 조건이 결과를 결정하는 경우,  두 번째 조건을 평가하지 않는다.!!
        //논리 합 ----> 첫 번째 조건이  true 라면 두번째, 세번째는 확인 안함


        boolean result = ((number += 10) > 10 ) || ((index += 2) < 10);
        System.out.println("result : " + result);

        System.out.println("number : " + number);
        System.out.println("index : " + index);


    }// end of main
}//end of class

 

 

삼항 연산자

● 삼항 연산자

● 조건식의 결과가 true(참)인 경우와 false(거짓)인 경우에 따라 다른 결과가 수행됨

● if (조건문)을 간단히 표현할 때 사용 할 수 있음

 

 

package cho3;

public class Operation10 {
    public static void main(String[] args) {

        int n1 = 100;
        int n2 = 500;

        int max;
        // n2가 큰 수이기에 값 false를 반환한다.
        // false이면 조건부 2번째 값이 max에 입력된다.
        //참고 t면 결과 1, f면 결과 2
        max =(n1 > n2) ? n1 : n2;
        System.out.println("max : " + max);


    } //end of main
} // end of class

 

 

 

문제

package execise;
// import -->수입하다, 가져오다 컨트롤 알트 엔터
//     java?util컨트롤 스캐너 클릭시에 식들 확인가능
import java.util.Scanner;

public class Exercise5 {
    public static void main(String[] args) {
        // 자바 특징 -> 풍부한 라이브러리(기능을) 제공하고 있다.
        // 자바 표준 라이브러리 - 스캐너
        //키보드에서 값을 가져 올 수 있다.
        // 도구
        Scanner sc = new Scanner(System.in);

        // 명령어 ----> 사용자가 입력한 키보드 값을 받기 의한 명령어이다.
        //그중에 정수값을 받기 위한 명령이다.
        System.out.printf("정수값을 입력하시오 :");
        int x = sc.nextInt();
        System.out.printf("정수값을 입력하시오 :");
        int y = sc.nextInt();
        //System.out.println("x : "  + x);// 한줄 내림



        System.out.println("x :"  + x);
        System.out.println("y :"  + y);

        // 사용자가 입력한 두 값을 받아서 덧셈 연산을 시켜보자.
        //문자열 + 정수 + 문자열
        //                 "결과1 :" + x + y
        System.out.println("결과1 :" + (x + y));



    }// end of main
} // enf of class
728x90