미새문지

JAVA. Day04 연산자 본문

언어 학습/자바 연습

JAVA. Day04 연산자

문미새 2022. 4. 22. 13:46
728x90

지난 3일차에선 산술 연산자까지 공부했습니다.

4일차부턴 남은 연산자인 관계연산자, 논리연산자, 삼항연산자에 대해 공부하겠습니다.

세 연산자를 알기 위해서는 조건식을 알아야합니다.

 

< 조건식 >

참이나 거짓을 판별할 수 있는 식으로,

조건식 자리에는 반드시 boolean 타입이 와야합니다.

 

 

관계연산자란?

 2개의 변수간의 관계를 참인지 거짓인지를 알려주는 연산자입니다.

논리 연산자도 참인지 거짓인지 알려주는 연산자이지만, 관계연산자와는 좀 다르므로 뒤에서 다루겠습니다.

 

 

관계연산자는 다음과 같은 조건식이 있습니다.

 

(1) a > b : a가 b보다 크다

(2) a < b : a가 b보다 작다

(3) a >= b : a가 b보다 크거나 같다

(4) a <= b : a가 b보다 작거나 같다

(5) a == : a와 b가 같다

(6) a != b : a와 b가 다르다

 - 각 식에서 제시한 조건이 참이면 true 거짓이면 false를 반환합니다.

 이러한 관계연산의 결과는 ★(중요)boolean 타입입니다.

 

 

관계연산자 예시)

public class Main {
	public static void main(String[] args) {
    
    	System.out.println(10 < 6);
        System.out.println(10 >= 5);
        System.out.println(10 == 15.1);
        System.out.println('a' > 'b');
        }
 }

 

결과)

false
true
false
false

문자열은 숫자와 달라 특정한 메소드가 필요한데, 문자열은 equals()를 통해 같은지 비교합니다.

==보다 equals()를 사용하는 이유는 ==연산자는 비교하고자 하는 대상의 주소값을 비교합니다.

하지만 equals() 메소드는 비교하고자 하는 대상의 내용 자체를 비교하기 때문에 문자열을 그대로 읽어낼 수 있어 확실하게 비교할 수 있습니다.

 

 

equals() 예시)

System.out.println("안녕".equals("안녕"));
		
String name = "문미새";
System.out.println(name.equals("문미새"));

 

결과)

true
true

 

다음은 똑같이 참과 거짓을 비교하는 논리 연산자입니다.

 

 

논리연산자란?

 

논리연산자는 논리식을 판단하여 참(true)거짓(false)를 반환합니다.

두 연산자의 차이점은 관계연산자두 변수를 대조하여 비교해보는 것이지만,

논리연산자두 변수의 논리값을 연산해 값을 얻는 연산자입니다.

 

< 논리연산자의 조건식>

(1) a && b : and연산자, a와 b가 둘다 참(true)일시 결과는 참(true), 아니라면 거짓(false)반환

(2) a || b : or연산자, a 혹은 b 둘중 하나라도 참(true)이면 결과는 참(true), 아니라면 거짓(false)반환

(3) !a : not연산자, a가 참(true)이라면 결과는 거짓(false), a가 거짓(false)이라면 결과는 참(true)

 

 

논리연산자 예시)

public class Main {
	public static void main(String[] args) {
    
		System.out.println("----&&연산자----");
		System.out.println(true && true);
		System.out.println(true && false);
		System.out.println(false && true);
		System.out.println(false && false);
		
		System.out.println("----||연산자----");
		System.out.println(true || true);
		System.out.println(true || false);
		System.out.println(false || true);
		System.out.println(false || false);
		
		System.out.println("----!연산자----");
		System.out.println(!true);
		System.out.println(!false);
        
        }
 }

 

결과)

----&&연산자----
true
false
false
false
----||연산자----
true
true
true
false
----!연산자----
false
true

 

다음은 삼항연산자입니다.

 

 

삼항연산자란?

연산 조건에서 세 개의 피연산자를 취할 수 있는 유일한 연산자입니다.

 

삼항연산자 조건식

조건식? 값1 : 값2 이며, 조건식이 참(true)이라면 결과는 값1로 반환,

                              조건식이 거짓(false)이라면 결과는 값2로 반환합니다.

 

 

삼항연산자 예시)

import java.util.Scanner;

public class ConditionalOperator {

	public static void main(String[] args) {
    
    	Scanner sc = new Scanner(System.in);
        
        System.out.println("나이 입력 : ");
		int a = sc.nextInt();
		
		System.out.println(a > 19 ? "성인입니다" : "미성년자입니다");
	}
}

 

 

결과)

---값이 20살 이상일 때---
나이 입력 : 
26
성인입니다

---값이 19살 미만일 때---
나이 입력 : 
17
미성년자입니다

 

 

그리고 조건식을 작성할 때 여러 연산자가 한번에 나오게 작성하는 경우도 있습니다.

여러개의 연산자식을 풀려면 연산자의 우선순위를 알아야합니다.

 

 

< 연산자 우선순위 >  --> (위부터 우선순위가 높은 순)

 

 - 최우선 연산자    ( )

 - 단항 연산자        !

 - 산술 연산자       + - * / %

 - 쉬프트 연산자     

 - 관계 연산자       > < >= <= != ==

 - 논리 연산자       &&  ||

 - 삼항 연산자     

 - 대입 연산자      =

 

 

예시)

!(10 >= 10)  ||  !"안녕".equals("안녕")  &&  10  !=  10;

 

즉, 위의 식을 풀어보면

(10 >= 10)참(true)  -->  !(참)거짓(false)  -->  "안녕".equals("안녕")참(true)  -->  !(참)거짓(false)

-->  거짓 || 거짓 && 10 != 10;  -->  10 != 10거짓(false)  -->  거짓 || 거짓거짓(false)

-->  거짓 && 거짓거짓(false)

 

답은 거짓(false)이 나옵니다.

 

 

이렇게 세 연산자에 대해 알아보았습니다.

참 거짓을 판별하는 논리문제는 하다보면 생각보다 재밌어서 이것저것 붙여서 풀어보셨으면 합니다.

아직까진 공부하여 따라갈만 합니다..

 

728x90

'언어 학습 > 자바 연습' 카테고리의 다른 글

JAVA.Day06 swhich문 + for문  (1) 2022.04.27
JAVA.Day05 선택제어문  (1) 2022.04.24
JAVA. Day03 변수의 선언  (1) 2022.04.20
JAVA. Day02 변수  (1) 2022.04.16
JAVA. Day01 JAVA란?  (1) 2022.04.14