일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- corou
- 소켓
- userprog
- 리액트
- 나만무
- Flutter
- Vue.js
- TiL
- defee
- 스택
- 핀토스
- 모션비트
- 백준
- 사이드프로젝트
- HTML
- 자바스크립트
- 알고리즘
- pintos
- 티스토리챌린지
- CSS
- Java
- 코드트리
- 크래프톤정글
- JavaScript
- 오블완
- 크래프톤 정글
- 자바
- 4기
- 큐
- 시스템콜
- Today
- Total
미새문지
JAVA. Day04 연산자 본문
지난 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)이 나옵니다.
이렇게 세 연산자에 대해 알아보았습니다.
참 거짓을 판별하는 논리문제는 하다보면 생각보다 재밌어서 이것저것 붙여서 풀어보셨으면 합니다.
아직까진 공부하여 따라갈만 합니다..
'언어 학습 > 자바 연습' 카테고리의 다른 글
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 |