Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
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
Tags more
Archives
Today
Total
관리 메뉴

ultra_dev

이것이 자바다 CH 3(연산자), CH 4(조건문과 반복문) 본문

이것이 자바다

이것이 자바다 CH 3(연산자), CH 4(조건문과 반복문)

ultra_dev 2023. 1. 13. 00:28

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 이름;
				}
		}
Comments