JAVA/자바의 정석

[자바의 정석 - 기초편] 3. (2) 연산자 (반올림 / 문자열 비교 / 논리 / 조건 / 대입)

서영22 2023. 11. 24. 21:03

반올림 연산자 - Math.round()

실수를 소수점 첫째 자리에서 반올림한 정수를 반환

long result = Math.round(4.52);  // result에 5 저장

//소수점 넷째 자리에서 반올림 하려면?
double pi = 3.141592;
double shortpi = Math.round(pi*1000) / 1000.0;  // 3.142

// 3.141을 얻으려면?
double pi = 3.141592;
double shortpi = (int)(pi*1000)/1000.0;
System.out.println(shortpi);

 

 

나머지 연산자 - %

오른쪽 피연산자로 나누고 남은 나머지 반환

나누는 피연산자는 0이 아닌 정수만 허용 (부호는 무시)

System.out.println("%d을 %d로 나누면, %n", x, y)
System.out.println("몫은 %d이고 나머지는 %d입니다, %n", x/y, x%y)

 

 

비교 연산자 

비교 연산자 연산 결과
> 좌변 값이 크면, true 아니면 flase
< 좌변 값이 작으면, true 아니면 flase
>= 좌변 값이 크거나 같으면, true 아니면 flase
<= 좌변 값이 작거나 같으면, true 아니면 flase
== 두 값이 같으면, true 아니면 false
!= 두 값이 다르면, true 아니면 false

 

 

문자열의 비교 - equals() 

String str1 = new String("ABC")
String str2 = new String("ABC")

System.out.println(str1==str2)  // false 에러 발생
System.out.println(str1.equals(str2))  // true

 

 

논리 연산자

|| (OR 결합) : 한쪽이 ture면 결과 true

&& (AND 결합) : 양쪽 모두 ture면 결과 true

 

Ex 1)  i 는 2의 배수 또는 3의 배수지만 6의 배수는 아니다
        ➔ ( i%2 == 0 || i%3 == 0 ) && i%6 != 0

Ex 2)  문자 ch는 숫자('0'~'9') 이다
        ➔ '0' <= ch && ch <= '9'
         * '0' = 48   /   '9' = 57

Ex 3)  문자 ch는 대문자 또는 소문자이다
         ➔ ( 'a' <= ch && ch <= 'z' ) || ('A' <= ch && ch <= 'Z' )

 

 

논리 부정 연산자 - !

x !x
true false
false true

 

 

조건 연산자 - ?

조건식의 결과에 따라 연산결과를 달리함

 

 

대입 연산자 - =

오른쪽 피연산자를 왼쪽 피연산자에 저장 후 저장된 값을 반환

int i = 0;
3 = i + 3;  // 에러, lvalue가 값을 저장할 수 있는 공간이 아님
i + 3 = i;  // 에러, lvalue의 연산 결과가 리러털 값(4)

final int MAX = 3;  // 변수 앞 final 붙이면 상수됨
MAX = 10 ;  // 에러, 상수에 새로운 값 저장 불가

 

 

복합 대입 연산자 

대입 연산자와 다른 연산자를 하나로 축약

op= =
i += 3; i = i + 3
i >>= 3; i = i >> 3;
i *= 10 + j i = i *(10 + j);