JAVA 기초 - 논리연산자(Logical Operator)

2020. 5. 31. 14:16·JAVA/JAVA 기초

 

E_Logical.java

package com.kh.operator;
import java.util.Scanner;

// 논리연산자
public class E_Logical {
	
	/*
	 * *논리 연산자
	 * - 두 논리값(ture/false)을 연산하는 연산자
	 * 
	 *  논리값 && 논리값 : 왼쪽, 오른쪽 둘 다 true일 경우 true
	 *  논리값 || 논리값 : 왼쪽, 오른쪽 둘 중에 하나라도 true일 경우 최종적으로 true 
	 *  
	 */
	
	public void method1() {
		
		// 사용자가 입력한 값이 1~100 사이의 값인지 확인하는 예시
		Scanner sc = new Scanner(System.in);
		
		System.out.print("정수 하나 입력 : ");
		int num = sc.nextInt();
		
		//boolean result = (1 <= num <= 100);
		
		boolean result = (num >= 1) && (num <= 100); //1보다 크거나 같고 100보다 작거나 같습니까
		
		//&& 의미 : ~이기도 하고, ~이기도 하면서
		
		System.out.println("사용자가 입력한 값이 1이상 100이하의 값입니까 : " + result);
		
		// && : 두개의 조건이 모두 true여야만 최종적인 결과값도 true
		//      즉, 둘 중에 하나라도 false가 된다면 최종결과값도 false
	}
	
	public void method2() {
		// 사용자가 입력한 값이 영어 대문자(A ~ Z) 인지 확인하기
		Scanner sc = new Scanner(System.in);
		
		System.out.print("영문자 하나 입력 : ");
		char ch = sc.nextLine().charAt(0);
		
		// A ~ Z ==> 65 ~ 90
		//boolean result = ('A' <= ch <= 'Z' ); (x)
		boolean result = (ch >= 'A') && (ch <= 'Z');
		
		System.out.println("사용자가 입력한 값이 대문자입니까 : " + result);
	}
	
	public void method3() {
		
		Scanner sc = new Scanner(System.in);
		
		System.out.print("프로그램을 종료하시겠습니까?(y 또는 Y) : ");
		char ch = sc.nextLine().charAt(0);
		
		// 사용자가 입력한 값이 y 또는 Y입니까
		boolean result = (ch == 'y') || (ch == 'Y');
		
		// || 의미 : ~ 또는 , ~ 이거나
		
		System.out.println("사용자가 입력한 값이 y 또는 Y 입니까 : " + result);
		
		// || : 두 개의 조건 중 하나라도 true가 있다면 최종 결과값은 true
		// 		즉, 두개의 조건이 모두 false일 경우 최종 결과값은 false
	}
	/*
	 *  && : 두 개의 조건이 모두 true 여야만 최종 결과값이 true
	 *  
	 *  true && true => true
	 *  true && false => false 
	 *  false && true => false
	 *  false && false => false
	 *  
	 *  => && 기준으로 왼쪽 결과가 false값이 나온다면 오른쪽 연산은 궃이 실행하지 않음.
	 *  
	 *  || : 두 개의 조건 중 하나만 true 값이 나와도 최종 결과값이 true
	 *  
	 *  true || true  => true
	 *  true || false => true
	 *  false || true => true
	 *  false || false => false
	 *  
	 *  => || 기준으로 왼쪽 결과가 true가 나오는 순간 오른쪽 조건을 수행하지 않는다.
	 *  
	 *  
	 *  
	 */
	
	public void method4() {
		
		int num = 10;
		
		System.out.println("&& 연산 전의 num의 값: " + num);
		
		boolean result = (num < 5) && (++num > 0);
		
		System.out.println("result : " + result);
		System.out.println("&& 연산 후의 num의 값 : " + num);
		
		System.out.println("======================");
		
		int num2= 10;
		
		System.out.println("|| 연산 전의 num2의 값 " + num2);
		
		boolean result2 = (num2 < 20) || (++num2 > 0);
		
		System.out.println("result2 : " + result2);
		System.out.println("|| 연산 후의 num2의 값 : " + num2);
		
	}
	
	public void method5() {
		// 증감 + 산술 + 비교 + 논리
		
		int a = 2;
		int b = 3;
		
		boolean c = a > b; // a=2, b=3, c=false
		
		boolean d = ++a <= b++; // a=3, b=3(4), c=false d=true
		
		System.out.println("a : " + a); // 3
		System.out.println("b : " + b); // 4
		System.out.println("c : " + c); // false
		System.out.println("d : " + d); // true
		
		System.out.println(); // 그냥 한줄 띄어쓰기 될 것임
		
		System.out.println(c != d); //true
		System.out.println(b % a == 1); // true 산술연산 먼저 비교연산이 나중.
		System.out.println(a == 3 && b == 4); // true
		System.out.println(!d || a - b > 0); // false
		
	}
}

 Point

- && : 두 조건 모두 만족시 true

-  | |  : 한 조건이라도 만족시 true

-  산술연산 먼저, 비교연산 나중 

'JAVA > JAVA 기초' 카테고리의 다른 글

JAVA 기초 - 삼항연산자(Triple Operator)  (0) 2020.05.31
JAVA 기초 - 복합대입 연산자(Compound Operator)  (0) 2020.05.31
JAVA 기초 - 비교연산자(Comparison Operator)  (0) 2020.05.31
JAVA 기초 - 산술연산자(Arithmetic Operator)  (0) 2020.05.31
JAVA 기초 - 증감연산자(Increase & decrease Operators)  (0) 2020.05.31
'JAVA/JAVA 기초' 카테고리의 다른 글
  • JAVA 기초 - 삼항연산자(Triple Operator)
  • JAVA 기초 - 복합대입 연산자(Compound Operator)
  • JAVA 기초 - 비교연산자(Comparison Operator)
  • JAVA 기초 - 산술연산자(Arithmetic Operator)
꿀표
꿀표
양봉업자
  • 꿀표
    꿀로그
    꿀표
  • 전체
    오늘
    어제
    • 분류 전체보기 (82)
      • 인디해커 (0)
      • AI (0)
      • 프론트엔드 (34)
        • Javascript (17)
        • React (9)
        • Git (2)
        • Web Env (4)
        • Typescript (1)
        • 웹접근성 (1)
        • 상태관리 (0)
      • CS (8)
        • Network (3)
        • 알고리즘 (5)
      • 글쓰기 (3)
        • 생각 (2)
        • 서적 (1)
      • JAVA (37)
        • JAVA 기초 (22)
        • JSP (15)
  • 블로그 메뉴

    • 방명록
  • 인기 글

  • 태그

    알고리즘
    network
    프로그래머스
    js
    구명보트
    그리디
    greedy
    react
    cross browsing
    javascript
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
꿀표
JAVA 기초 - 논리연산자(Logical Operator)
상단으로

티스토리툴바