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