본문 바로가기
코딩/JAVA

[JAVA] 자바 문법 연산자

by 인생최적화 2020. 6. 11.
반응형

 

자바 기초 문법 연산자

 


 

[ 단항 연산자 ]

1씩 증가하거나 1씩 감소하는 연산입니다

단항 연산자
x  = 1 y = 3
x++ (1증가) y-- (1감소)
x = 2 y = 2

package com.test;

public class Operator {
	public static void main(String[] args) {
		
		int x = 1;
		
		System.out.println("오늘은 " + x + "일입니다");
		System.out.println("하루가 지나갔습니다");
		System.out.println("--------------");
		x++; //변수 x 1증가
		
		System.out.println("오늘은 " + x + "일입니다");
		System.out.println("또 하루가 지나갔습니다");
		System.out.println("--------------");
		x++; //변수 x 1증가
		
		System.out.println("오늘은 " + x + "일입니다");
		System.out.println("단항 연산자는 1씩 증가합니다");
		System.out.println("--------------");
		x--; //변수 x 1감소
		
		System.out.println("어제는 " + x + "일이었습니다");
		System.out.println("마이너스도 1씩 감소합니다");
		
	}
}

 

단항 연산자는 다른 연산자화 함께 사용된다면
위치에 따라서 다른 결과값이 나옵니다
예제를 통해서 설명하겠습니다

x++
연산 처리를 하고 나서 +1증감


package com.test;

public class Operator {
	public static void main(String[] args) {
		
		int x = 5;
		int result1 = 10 + x++;
		// 증감 연산자가 변수 뒤에 있으면 계산이 끝나고 나서 1 증가시킵니다
		// 10+5가 연산이 먼저 되고 결과값인 15가 변수 'result1'에 저장되고 난 후 1이 증가
		// 따라서 변수'result1'에는 15가 저장되고 변수'x'는 1이 증가되어 6이 저장

		System.out.println("결과 : " + result1);
		System.out.println("변수 x에 담긴 값 : " + x);
		
	}
}

 

++x
연산 처리를 하기 전에 +1증감


package com.test;

public class Operator {
	public static void main(String[] args) {
		
		int x = 5;
		int result2 = 10 + ++x;
		// 증감 연산자가 변수 앞에 있으면 증감이 +1 먼저 되고 나서 연산을 처리합니다
		// 연산이 먼저 되기 전에 변수'x'에 +1이 증감되어 'x'에는 5+1의 결과인 6이 담긴다
		// 따라서 변수'result2'에는 10+(5+1)인 16이 저장됩니다

		System.out.println("결과 : " + result2);
		System.out.println("변수 x에 담긴 값 : " + x);
		
	}
}

 


 

[ 이항 연산자 ]

이항 연산자
x + y 더하기
x - y 빼기
x * y 곱하기
x / y 나누기
x % y x 와 y를 나누고 난 나머지 값

package com.test;

public class Operator {
	public static void main(String[] args) {
		
		int x = 8;
		int y = 2;
		int result1;
		int result2;
		int result3;
		int result4;
		int result5;
		
		result1 = x + y; //x+y의 결과값을 변수 'result'에 저장
		result2 = x - y; //x-y의 결과값을 변수 'result'에 저장
		result3 = x * y; //x*y의 결과값을 변수 'result'에 저장
		result4 = x / y; //x/y의 결과값을 변수 'result'에 저장
		result5 = x % y; //x%y의 결과값을 변수 'result'에 저장
	
		System.out.println("변수x 변수y를 더한 값 : " + result1);
		System.out.println("변수x 변수y를 뺀 값 : " + result2);
		System.out.println("변수x 변수y를 곱한 값 : " + result3);
		System.out.println("변수x 변수y를 나눈 값 : " + result4);
		System.out.println("변수x 변수y를 나누고 난 나머지 값 : " + result5);
		
	}
}

 


 

[ 문자열 결합 연산자 ]

피연산자 중 한쪽이 문자열이면
+연산자는 문자열 결합 연산자로 적용되어
다른 피연산자를 문자열로 변환하고 서로 결합

package com.test;

public class Operator {
	public static void main(String[] args) {
		
		String str1 = "로봇트" + 136;
		System.out.println(str1);
		System.out.println();
		
		String str2 = "로켓"+2.1;
		System.out.println(str2);
		System.out.println();
		
		String str3 = "스포츠카 모델" + 3.0 + 24;
		System.out.println(str3);
		
	}
}

 


 

[ 비교 연산자 ]

비교 연산자(기준은 좌측)
== 두 값이 서로 '같은지' 검사
[ x = y ] 와 [ x == y ] 다릅니다 '='는 y를 x에 저장하는 개념 '=='는 x와 y가 똑같은지 검사
!= 두 값이 서로 '다른지' 검사
x > y x가 y보다 '큰 값' 인지 검사
x < y x가 y보다 '작은 값' 인지 검사
x >= y x가 y보다 '크거나 같은지' 검사
x <= y x가 y보다 '작거나 같은지' 검사

package com.test;

public class Operator {
	public static void main(String[] args) {

		int x = 1; //변수 x를 선언하고 1을 저장
		int y = 2; //변수 y를 선언하고 2를 저장
		boolean result; //논리연산타입 변수 result를 선언
		
		result = x == y; //'x'와 'y'의 값이 같은지를 비교하고 결과를 'result'에 저장
		System.out.println("x == y 결과 : " + result); //두 값은 다르기 때문에 'false' 출력
		System.out.println();

		result = x != y; //'x'와 'y'의 값이 다른지를 비교하고 결과를 'result'에 저장
		System.out.println("x != y 결과 : " + result); //두 값은 다르기 때문에 'true' 출력
		System.out.println();
		
		result = x > y; //'x'가 'y'보다 큰 값인지 비교하고 결과를 'result'에 저장
		System.out.println("x > y 결과 : " + result); //'x'는 'y'보다 작기 때문에 'false' 출력
		System.out.println();
		
		result = x < y; //'x'가 'y'보다 작은 값인지 비교하고 결과를 'result'에 저장
		System.out.println("x < y 결과 : " + result); //'x'는 'y'보다 작기 때문에 'true' 출력
		System.out.println();
		
	}
}

 

package com.test;

public class Operator {
	public static void main(String[] args) {

		int x = 3; //변수 x를 선언하고 3을 저장
		int y = 3; //변수 y를 선언하고 4를 저장
		int z = 5; //변수 z를 선언하고 5를 저장
		boolean result; //논리연산타입 변수 result를 선언
		
		result = x >= y; //'x'가 'y'보다 크거나 같은지 비교하고 결과를 'result'에 저장
		System.out.println("x >= y : " + result);
		//'x'가 'y'보다 크진 않지만 같기 때문에 'true'가 출력
		System.out.println();
		
		result = x <= z; //'x'가 'z'보다 작거나 같은지 비교하고 결과를 'result'에 저장 
		System.out.println("x <= z : " + result);
		//'x'가 'z'와 값이 똑같진 않지만 작기 때문에 'true'가 출력
		System.out.println();
		
		result = x >= z; //'x'가 'z'보다 크거나 같은지 비교하고 결과를 'result'에 저장
		System.out.println("x >= z : " + result);
		//'x'는 'z'보다 크지도 같지도 않기 때문에 'false'가 출력
		
	}
}

 



[ 논리 연산자 ]

논리 연산자
&& (논리곱) 둘 다 모두 조건이 맞으면 'true'
|| (논리합) 'Shift + \' 누르면 나오는 키 둘 중 하나라도 조건이 맞으면 'true'
! (논리부정) 조건이 맞으면 'false' 틀리면 'true'

package com.test;

public class Operator {
	public static void main(String[] args) {

		int a = 1;
		int b = 2;
		boolean result;
		
		//'a'가 1과 같은지 'b'도 2와 같은지를 검사한 결과값을 'result'에 저장
		result = a == 1 && b == 2; //둘 다 조건이 성립하기 때문에 'true'를 반환
		System.out.println("a == 1 && b == 2 : " + result);
		System.out.println();
		
		//'a'가 1과 같은지 'b'도 3과 같은지를 검사한 결과값을 'result'에 저장
		result = a == 1 && b == 3; //조건이 하나만 성립하기 때문에 'false'를 반환
		System.out.println("a == 1 && b == 3 : " + result);
		System.out.println();
		
		//'a'가 1과 같은지 혹은 'b'가 3과 같은지를 검사한 결과값을 'result'에 저장
		result = a == 1 || b == 3; //두 조건 중 하나는 성립하기 때문에 'true'를 반환
		System.out.println("a == 1 || b == 3 : " + result);
		System.out.println();
		
		//'a'가 2와 같은지  혹은'b'가 3과 같은지를 검사한 결과값을 'result'에 저장
		result = a == 2 || b == 3; //조건이 둘 다 틀리기 때문에 'false'를 반환
		System.out.println("a == 2 || b == 3 : " + result);
		System.out.println();
		
		//논리부정 = 조건이 성립하면 false 틀리면 true
		result = a != 1; //조건이 성립하기 때문에 'false'를 반환
		System.out.println("a != 1 : " + result);
		result = b != 3; //조건이 성립하지 않기 때문에 'true'를 반환
		System.out.println("b != 3 : " + result);
		System.out.println();
		
	}
}

 


 

[ 대입 연산자(누적연산자) ]

대입 연산자 - 누적 연산자(자주 쓰이는 것)
= 우측 값을 왼쪽값에 저장
+= 우측 값을 왼쪽값에 누적 증감
-= 우측 값을 왼쪽값에 누적 차감

package com.test;

public class Operator {
	public static void main(String[] args) {

		int a = 1;
		
		a = 12; //12를 'a'에 저장
		System.out.println("첫 번째 a에 담긴 값 : " + a);
		System.out.println();
		
		a = 22; //22를 'a'에 저장 먼저 저장된 12와는 상관없다
		System.out.println("두 번째 a에 담긴 값 : " + a);
		System.out.println();
		
		a = 1; //'a'에 다시 1을 저장
		System.out.println("세 번째 a에 담긴 값 : " + a);
		System.out.println();
		
		a += 1; //1을 누적
		a += 2; //2를 누적
		a += 3; //3을 누적
		
		//1 + 1 + 2 + 3 = 7
		//1에다가 1,2,3을 누적 증감
		System.out.println("증감 후 현재 a의 값 : " + a);
		System.out.println();
		
		a -= 1; //누적 차감
		a -= 1; //누적 차감
		
		//현재 7이 담긴 변수'a'에 1을 두번 누적 차감
		System.out.println("차감 후 현재 a의 값 : " + a);
	}
}

 


 

[ 삼항 연산자 ]

삼항연산자
int result = (1 < 2) ? 1 : 0;
(1 < 2)를 비교하고 '참'이면 '1'을 'result'에 저장 '거짓'이면 '0'을 'result'에 저장
String result = (2 == 0) ? "참입니다" : "거짓입니다";
(2 == 0) 을 비교하고 '참'이면 "참입니다"를 'result' 에 저장, '거짓'이면 "거짓입니다"를 'result'에 저장

package com.test;

public class Operator {
	public static void main(String[] args) {

		int x = 12;
		int y = 33;
		
		int result1; //결과값을 정수타입으로 받는다
		String result2; //결과값을 문자열로 받는다
		
		result1 = (x < 17) ? 1 : 0; //결과가 참이면 1을 반환, 거짓이면 0을 반환
		System.out.println("x > 17 의 결과 : " + result1);
		System.out.println();
		
		result1 = (x != y) ? 1 : 0; //결과가 참이면 1을 반환, 거짓이면 0을 반환
		System.out.println("x != y 의 결과 : " + result1);
		System.out.println();
		
		result2 = (y == 20) ? "맞습니다" : "틀립니다";
		System.out.println("y == 20 의 결과 : " + result2);
		System.out.println();
		
		result2 = (y == x) ? "맞습니다" : "틀립니다";
		System.out.println("y == x 의 결과 : " + result2);
		
	}
}

 


 

연습이 최선입니다

'인생최적화'

 

 

반응형

댓글