JAVA

[JAVA와 친해지기] 연산자

우리의 초등학교 풋풋했던 어린 시절로 돌아가서 더하기 빼기를 배우던 시절이 기억나시나요? 그 사소해 보였던 덧셈 뺄셈이 나중에 어려워 보이는 미적분으로 발전하 듯 수리학과 밀접한 관련이 있는 프로그래밍의 분야에서도 기본적인 사칙연산은 프로그램의 기초가 됩니다. 이번 시간에는 우리가 배우는 JAVA환경에서의 연산을 알아보도록 하겠습니다!

 


사칙연산

JAVA의 사칙연산을 코드와 함께 만나볼께요!

// Algebra.java

public class Algebra{
	public static void main(String[] args){
		int x = 10;
		int y = 3;

		System.out.println("x+y="+(x+y));	//덧셈
		System.out.println("x-y="+(x-y));	//뺄셈
		System.out.println("x*y="+(x*y));	//곱셈
		System.out.println("x/y="+(x/y));	//나눗셈
		System.out.println("x%y="+(x%y));	//mod연산
	}
}
//출력

x+y=13
x-y=7
x*y=30
x/y=3
x%y=1

위의 5가지 연산이 JAVA의 기본적인 사칙연산입니다! 다음은 증감 연산자로 불리는 연산을 알아볼까요?

// Algebra2.java

public class Algebra2{
	public static void main(String[] args){
		int x = 10;

		System.out.println("x++ : "+(x++));	//이줄까지는 x : 10, 이 줄 실행 후 x : 11
		System.out.println("x-- : "+(x--));	//이줄까지는 x : 11, 이 줄 실행 후 x : 10
		System.out.println("++x : "+(++x));	// 이줄까지는 x : 11, 이 줄 실행 후 x : 11
		System.out.println("--x : "+(--x));	// 이줄까지는 x : 10, 이 줄 실행 후 x : 10
	}
}
//출력
x++ : 10
x-- : 11
++x : 11
--x : 10

증감 연산자는 변수한 개에 대해서 동작하는 연산자로 오직 1 증가인 ++와 1 감소인 --만이 존재합니다. 특이한 점은 연산의 결과가 실제 변수에 반영된다는 점이고, 연산자의 위치에 따라 증감 후 코드 줄 실행 or 코드줄 실행 후 증감으로 나뉩니다. 사칙 연산자의 변용으로 아래와 같은 사용도 가능합니다!

// Algebra3.java

public class Algebra3{
	public static void main(String[] args){
		int x = 10;
		int y = 3;

		x += y;	//x에 x+y를 대입, 이제 x는 13
		System.out.println("x+=y"+x);	
		x -= y;	//x에 x-y를 대입, 이제 x는 10
		System.out.println("x-=y"+x);
		x *= y;	//x에 x*y를 대입, 이제 x는 30
		System.out.println("x*=y"+x);
		x /= y;	//x에 x/y를 대입, 이제 x는 10
		System.out.println("x/=y"+x);
		x %= y;	//x에 x%y를 대입, 이제 x는 1
		System.out.println("x%=y"+x);
	}
}
//출력
x+=y13
x-=y10
x*=y30
x/=y10
x%=y1

다음은 논리 연산자에 대해서 알아보겠습니다!


논리 / 비교 연산

논리 연산이란 TRUE(1)와 FALSE(0)로 이루어진 2진수 세상에서 조건(논리)을 만들기 위한 연산으로 NOT(!) / AND(&&) / OR(||) 등이 있습니다! 비교 연산은 좌변과 우변의 크기 / 일치 여부를 비교하는 연산자로 초과 or 미만(> or <) / 이상, 이하(>= or <=) / 일치(==) / 불일치(!=)의 연산자가 있습니다!

// Logical.java

public class Logical{
	public static void main(String[] args){
		boolean x = true;
		boolean y = false;
        int a = 3;
        int b = 5;
		
		System.out.println("!True = "+!x);		// NOT 연산
		System.out.println("True && False = "+x&&y);	// AND 연산
		System.out.println("True || False = "+x||y);	// OR 연산
		System.out.println("3 < 5 = "+a<b);		// 초과 연산
		System.out.println("3 >= 5 = "+a>=b);		// 이상 연산
		System.out.println("True == False = "+x==y);	// 일치 연산
		System.out.println("True != False = "+x!=y);	// 불일치 연산
	}
}
//출력
!True = false
True && False = false
True || False = true
3 < 5 = true
3 >= 5 false
True == False = false
True != False = true

일치와 불일치 연산은 boolean값이 아니라 3==3과 같은 비논리형 타입의 비교도 가능합니다!

추가로 AND와 OR의 연산 결과는 다음과 같습니다!

x y AND연산
false false false
false true false
true false false
true true true
x y OR연산
false false false
false true true
true false true
true true true

비트 연산자

JAVA는 당연하게도 2진수 연산을 지원합니다!

// Bit.java

public class Bit{
	public static void main(String[] args){
		int a = 0b01001110;
		int b = 0b10101111;;
		
		System.out.println("a&b = "+(a&b));	// and 연산
		System.out.println("a|b = "+(a|b));	// or 연산
		System.out.println("a^b = "+(a^b));	// xor 연산
		System.out.println("a << 2 = "+(a<<2));	// shift 연산
	}
}

시프팅을 제외하고는 논리 연산자를 한문자로 기술하면 동일하게 비트 수준으로 동작합니다 얘네들도 줄여서 대입 연산으로(ex : ^= |= &= 등등) 동작시킬 수 있습니다!


삼항 연산자

조금 특이한 연산자가 있습니다!  연산자는 피연산자(예를 들면 a+b 일 때 연산자 + 에 필요한 피연산자는 a와 b 2개) 개수에 따라 분류 가능합니다. 단항(1개) / 이항(2개) 연산자가 보통 사용되는데, 삼항(3개)이 필요한 연산자가 java에는 있습니다! 바로?: 연산자입니다! 사용을 바로 보겠습니다!

// Tri.java

public class Tri{
	public static void main(String[] args){
		int a = 3;
		int result = a>5 ? 5 : a;	// a가 5보다 크다면 :왼쪽의 5, 혹은 a
		
		System.out.println("result = "+result);
	}
}
// 출력
result = 3

그렇습니다!

(조건)? (조건이 참 일 때) : (조건이 거짓 일 때)

처럼 3개의 피연산자를 받습니다!


이번 시간에는 JAVA에서 사용되는 연산자를 알아보았습니다! 다음 시간에는 프로그래밍의 꽃! 우리 마음대로 프로그램의 방향을 안내해 줄 수 있는 제어문에 대해서 알아보도록 하겠습니다!

'JAVA' 카테고리의 다른 글

[JAVA와 친해지기] 반복문  (0) 2021.08.21
[JAVA와 친해지기] 흐름제어문  (0) 2021.08.19
[JAVA와 친해지기] 자료형  (0) 2021.08.17
JAVA 예약어 종류  (0) 2021.08.14
[JAVA와 친해지기] JAVA프로그래밍과 변수  (2) 2021.08.14