2021. 1. 14. 20:10ㆍDev.Program/Java & Spring
======== Ex.java 만들기
p.104
< 삼항연산자(조건연산자) >
- 연산에 참여하는 항이 3개인 연산자
- 특정 조건에 따라 다른 값을 실행하는 연산자
⇒ if ~ else 문과 동일한 기능을 수행
- 2가지 경우의 수(true 또는 false) 에 대한 결과를 수행 가능
< 기본 문법 >
연산식 ? 값1 : 값2
- 연산식에는 결과값이 boolean 타입(true 또는 false)인 식만 올 수 있다!
- 연산식 판별 결과가 true 일 때 값1 부분을 실행하고,
- 연산식 판별 결과가 false 일 때 값2 부분을 실행
문제 ) a 와 b 중에서 a가 크면 max 에 a 를 전달하고, 아니면 b를 전달
int a = 10;
System.out.println(a % 2 == 0 ? "짝수" : "홀수");
// ⇒ true 일 때 : System.out.println("짝수"); 문장과 동일한 결과가 출력됨
a = 11;
System.out.println(a % 2 == 0 ? "짝수" : "홀수");
// ⇒ false 일 때 : System.out.println("홀수"); 문장과 동일한 결과가 출력됨
String result = a % 2 == 0 ? "짝수" : "홀수";
// String result = "홀수"; 와 동일함
System.out.println("result : " + result);
System.out.println("-------------------------------");
a = 10;
int b = 20;
// a 와 b 중에서 a가 크면 max 에 a 를 전달하고, 아니면 b를 전달
int max = a > b ? a : b;
System.out.println("최대값 max = " + max);
======== Test.java 만들기
문제) 뷔페 요금 계산
1. 뷔페의 기본 요금(price)은 30000원이다. ⇒ 변수 생성 및 초기화
2. 손님의 나이(age) 를 입력받는다. ⇒ 변수 생성 및 초기화
3. 뷔페 할인 조건 : 나이(age) 가 3세 이하일 경우 70% 할인된 요금으로 계산
4. 최종적으로 뷔페 요금 출력
- 그리고 0.3을 곱하면 실수형으로 바뀌기 때문에 앞에 (int)를 적어서 형변환 해줘야함
문제 ) 대문자 판별
1. 영문자를 입력받아 변수 ch에 저장 ⇒ 변수 생성 및 초기화
2. 대문자 판별하여 결과를 변수 result에 저장
⇒ 대문자일 경우 "대문자" 를 저장하고, 아니면 "대문자 아님"을 저장
⇒ 대문자란? 'A' 보다 크거나 같고, 'Z' 보다 작거나 같은 문자
3. 결과(result) 출력
char ch = 'B';
String result = (ch >= 'A' && ch <= 'Z') ? "대문자" : "대문자아님";
System.out.println(result);
- String result = (ch >= 'A' && ch <= 'Z') ? "대문자" : "대문자아님";
→ 여기 괄호는 빼도 되는데 보기 쉽게 괄호를 넣어줌.
- 문자 ch 가 'A'(65) 보다 크거나 같다 : ch >= 65 또는 ch >= 'A'
- 문자 ch 가 'Z'(90) 보다 크거나 같다 : ch <= 90 또는 ch <= 'A'
⇒ 두 조건을 모두 만족하면 true, 하나라도 만족하지 않으면 false 가 되어야 하므로 &&(AND) 연산자 사용하여 두 조건을 묶어준다.
======== Ex2.java / Test2.java ⇒ 삼항연산자 중첩 사용
< 삼항연산자의 중첩 사용 >
- 경우의 수가 3가지 이상일 때 사용
- 삼항연산자 내에서 true 또는 false 일 때 실행할 부분에 또 다른 삼항연산자를 사용하여 그 다음 조건을 판별하는 방법을 사용
< 기본 문법 >
연산식1 ? 값1 : 연산식2 ? 값2 : 값3;
======== Ex3.java
< 비트 단위 논리연산자(&, |, ~, ^)>
- 정수끼리 2진수로 변환 후 논리적인 연산 수행
1. AND 연산(&) - 두 비트가 모두 1일 때 결과가 1이고, 하나라도 0이면 결과가 0
1100(12)
0100( 4)
-------- AND 연산
0100( 4)
2. OR 연산(|) - 두 비트 중 하나라도 1이면 결과가 1이고, 모두 0이면 결과가 0
1100(12)
0100( 4)
-------- OR 연산
1100(12)
3. XOR 연산(^) - 두 비트가 같으면 0, 다르면 1
1100(12)
0100( 4)
-------- XOR 연산
1000( 8)
4. NOT 연산(~) - 현재 비트를 반전(0 → 1, 1 → 0)
1100(12)
-------- NOT 연산
======== Ex4.java
p.109
< 비트 단위 쉬프트(Shift) 연산자 >
- 비트를 좌측 또는 우측으로 이동시키는 연산자
- 좌측으로 이동하는 Left Shift 연산자 : x * 2 와 동일한 연산 수행
(우측 빈 자리는 0으로 채움)
⇒ 정수 << x비트 할 경우 "정수 * 2^x" 결과와 같다
- 우측으로 이동하는 Right Shift 연산자 : x / 2 와 동일한 연산 수행
'Dev.Program > Java & Spring' 카테고리의 다른 글
[Java] switch~case문 / 반복문 / for문 (0) | 2021.01.14 |
---|---|
[Java] 조건문 / if문 / if~else문 / 중첩if문 (0) | 2021.01.14 |
[Java] 연산자 (0) | 2021.01.12 |
[Java] 아스키코드 / 유니코드 / 형변환 / print() (0) | 2021.01.12 |
[Java] 상수 / 변수 / 기본데이터타입 (0) | 2021.01.12 |