개인적으로 헷갈리는 것 중요한 것 위주로 정리해두고 연습문제를 풀어본 글입니다.
연산자
= 대입 * 곱하기
+ 더하기 / 몫
- 빼기 % 나머지
- 복합 대입 연산자
a = a + b == a += b
a = a - b == a -= b
a = a * b == a *= b
a = a / b == a /= b
a = a % b == a %= b
명시적 형변환 필수 형변환 안해도됨
* 명시적 형변환 (예시)
int num = 3;
num = (int)(num * 2.5);
- 논리 연산자
A && B A, B 둘다 참 (AND)
A || B A 또는 B둘 중 하나가 참 (OR)
!A 값이 A가 참이면 거짓, A가 거짓이면 참 (NOT)
- SCE (Shrot-Circuit Evaluation)
· && 의 왼쪽 피연산자가 false 이면, 오른쪽은 확인하지 않는다.
· || 의 왼쪽 피연산자가 true이면, 오른쪽은 확인하지 않는다.
오른쪽을 확인하지 않으면서 오른쪽 연산이 진행되지 않는다.
- Prefix, Postfix
간단하게 Prefix는 전위 연산자, Postfix는 후위 연산자라고 할 수 있다.
++n; , --n; 증감 후 출력
n++; , n--; 출력 후 증감
- 비트 연산자
<문제 04-1>
문제 1.
문제 2.
class SCEad {
public static void main(String[] args) {
int num1 = 0;
int num2 = 0;
boolean result;
/*1
result = ((num1+=10) < 0) && ((num2+=10) > 0);
System.out.println("result = " + result);
System.out.println("num1 = " + num1);
System.out.println("num2 = " + num2 + '\n');
*/
//num2의 값이 변하게 수정
num1 += 10;
num2 += 10;
result = (num1 < 10) && (num2 > 0);
System.out.println("result = " + result);
System.out.println("num1 = " + num1);
System.out.println("num2 = " + num2);
/*2
result = ((num1+=10) > 0) || ((num2 +=10) > 0);
System.out.println("result = " + result);
System.out.println("num1 = " + num1);
System.out.println("num2 = " + num2);
*/
//수정
num1 += 10;
num2 += 10;
result = (num1 > 0) || (num2 > 0);
System.out.println("result = " + result);
System.out.println("num1 = " + num1);
System.out.println("num2 = " + num2);
}
}
문제 3.
문제 4.
문제 5.
class Ch4Q1_5 {
public static void main(String[] args) {
int n1 = ((25+5) + (36/4) - 72) * 5;
int n2 = ((25*5) + (36-4) + 71) / 4;
int n3 = (128/4) * 2;
boolean result;
result = (n1>n2) && (n2>n3);
System.out.println(result);
}
}
'열혈 Java 프로그래밍' 카테고리의 다른 글
[윤성우의 열혈 Java 프로그래밍] Chapter 05 if, else, switch (0) | 2020.07.20 |
---|---|
[윤성우의 열혈 Java 프로그래밍] Chapter 04 비트 연산자 (0) | 2020.07.20 |
[윤성우의 열혈 Java 프로그래밍] Chapter 03 (0) | 2020.07.16 |
[윤성우의 열혈 Java 프로그래밍] Chapter 02 (0) | 2020.07.15 |
[윤성우의 열혈 Java 프로그래밍] Chapter 01 (0) | 2020.07.15 |