Web develop/JAVA

[JAVA] 자바 연산자 종류

ForA 2019. 4. 17. 21:33
728x90

산술연산자

+ , - , * , /(몫) , %(나머지)

문자열 더하기

"문자열1" + "문자열2" => "문자열1문자열2" 
"문자열" + 33 => "문자열33" 
55+"문자열" => "55문자열" 
1+2+"안녕" = "3안녕" 
"안녕"+1+2 = "안녕12"

증감연산자

변수명++ // 후위연산자. 변수값을 가져오고 그 후에 +1 해준다  
++변수명 // 전위연산자. 변수값을 가져오기 전 +1 해준다

i++; //i=i+1
i--; //i=i-1


변수명 += n; // 변수명=변수명+n;
변수명 -= n; // 변수명=변수명-n;
변수명 *= n;
변수명 /= n;
변수명 %= n;

비교(관계)연산자 (결과값 boolean)

>, < , >=, <=, ==, !=

논리연산자 (결과값 boolean)

&& //and 연산자. 그리고
|| //or 연산자. 또는

//A,B는 boolean 데이터 (true가 1, false가 0 이라는 가정)
A && B ==> 모든 조건(A,B)를 만족했을 때 결과값 true
A || B ==> 하나의 조건이라도 만족한다면 결과값 true

int x = 10;       
int y = 20;       
int z = 30;          
 A         B       
(x<y) && (y>z) => False  //B를 실행을 한다 -> O       
(x>y) && (y>z) => False  //B를 실행을 한다 -> X
  • (x>y)의 결과가 false이므로 (y>z)를 실행안해도 전체결과가 false이기에 B를 실행하지 않는다.

부정연산자

!true //false
!false //true
  • ! : not 연산자, 부정연산자.
  • 부정연산자 사용시 변수는 괄호를 안치고 해줘도 됨

문제) 윤년의 조건

  1. 연도를 4로 나누어 나머지가 0이고 연도를 100 으로 나누어 나머지가 0이 아닌 경우

  2. 연도를 400으로 나누어 나머지가 0인 경우

int year = 2019;
boolean a = (year%4==0) && (year%100!=0), b = (year%400==0);

System.out.println("만약 연도가 윤년일 때 -->"+(a||b));
System.out.println("만약 연도가 평년일 때 -->"+!(a||b));