ultra_dev
이것이 자바다 CH 3(연산자), CH 4(조건문과 반복문) 본문
CH 3 연산자
☑️ 부호 연산자 + (부호 유지) - (부호 반대로 변경)
❗ 부호 연산자도 연산이므로 int 타입 변수에 대입
byte b = 100;
byte result = -b; // 컴파일 에러
byte b = 100;
int result = -b; // OK
☑️ 오버플로우(타입 허용 최대값을 벗어남) / 언더플로우(타입 허용 최솟값을 벗어남)
- 정수 타입 연산에서 오버플로우 / 언더플로우가 발생 시 실행에러 발생 하지 않는다.
- 해당 정수 타입의 최솟값 또는 최대값으로 변경된다.
☑️ 연산은 정수 연산이 정확하다. 부동 소수점 방식인 실수는 부정확함
ex) double 0.1 == float 0.1f 하면 결과는 false
☑️ for 문의 초기화 식에는 실수 사용하지 않는다. 부정확함
☑️논리 연산자
- AND(논리곱) : 피연산자 모두 true일 경우 연산결과 true → &&,&
- OR(논리합): 피연산자 중 하나만 trueㅇ이면 연산결과는 true → ||,|
- XOR(배타적 논리합): 피연산자 하나가 true 다른 하나가 flase일 경우에만 연산 결과 true → ^
- NOT(논리 부정): 피연산자의 논리값을 바꿈 → !
☑️ &과 |는 피연산자를 모두 평가 후 산출해서 &&, || 보다 비효율적
☑️ 삼항연산자
( 조건식 ) ? ( 1 값 또는 연산식 ) : ( 2 값 또는 연산식 )
- true → 1 실행 / false → 2 실행
☑️ Math.pow(a, b)
- a^b 연산
- double 값으로 산출
☑️ switch문 괄호에 넣는 변수 타입은 오직 정수, String타입만 가능하다. float같은 실수 타입 X
☑️ 나눗셈, 나머지 연산에서 좌측 피연산자가 정수, 우측 피연산자가 0일 경우 예외 발생
(0으로 / 하면 무한대, %하면 나머지 못구하니까)
→ ArithmeticException 발생
☑️ 좌측 피연산자가 실수이거나 우측 피연산자가 0.0 or 0.0f이면 예외 발생 X
→ Infinity(무한대) or NaN(Not a Number) 발생
ex) 5/0.0 → infinity
5%0 → NaN
☑️ Infinity or NaN인지 확인하는 방법 → .isInfinite() / .isNaN()
CH 4 조건문과 반복문
☑️ Math.random() 메소드
0.0 ≤ ~ <1.0 사이의 double 타입 난수 리턴
0.0,1.0이기 때문에 보통 *10하고 구하고자 하는 숫자 +1함
☑️ continue문
- for, while, do-while에서만 사용
- for문의 증감식, while과 do-while의 조건식으로 바로 이동(즉 초기로 이동)
- 반복문을 종료하지 않고 계속 반복 수행 → break문과의 차이점
☑️ switch문의 default
case(값):
.
.
break;
default:
.
.
}
case에 부합하지 않을 때, default 값 설정 가능(break;따로 안써줘도 됨)
☑️ 중첩 반복문 내부에서 외부까지 종료하는 법
이중 for문 같은 중첩 반복문에서 안쪽에서 break;쓰고 바깥쪽 반복문으로 돌아가는 게 아니라
아예 바깥쪽 반복문까지 종료 시키려면 바깥쪽 반복문에 이름을 붙히고
안쪽에 break 이름;
하면 바깥쪽까지 다 종료됨
이름 : for(int i = 0; i<100 i++){
for(int j=0; j<100 j++){
.
.
break 이름;
}
}
'이것이 자바다' 카테고리의 다른 글
이것이 자바다 CH 7-1(상속) (0) | 2023.01.13 |
---|---|
이것이 자바다 CH 6-2(클래스) (0) | 2023.01.13 |
이것이 자바다 CH6-1(클래스) (0) | 2023.01.13 |
이것이 자바다 CH 5(참조타입) (0) | 2023.01.13 |
이것이 자바다 CH 1, 2(변수와 타입) (1) | 2023.01.13 |