728x90
반응형
자바에서 사용하는 연산자(Operator)는 아래와 같고, 그 중 증감연산자와 삼항연산자에 대해서는 꼼꼼하게 보고 넘어가자.
증감 연산자
: 변수 앞 or 뒤에 붙어서 해당 변수의 값을 1씩 증가 or 감소 시킨다.
- ++i : 연산을 먼저하고 값을 나중에 리턴 한다.
- i++ : 값을 먼저 리턴하고 연산을 나중에 한다.
삼항 연산자 (조건 연산자)
: 조건식에 따라 결과가 참일 경우 거짓일 경우 각각 다른 처리를 한다.
- (조건식) ? 수식1(참) : 수식2(거짓) ; : 조건식이 true이면 수식1을 수행하고 false이면 수식2를 수행한다.
package com.test01;
public class MTest {
public static final int TEN = 10; // 속성, field
public static void main(String[] args) {
opr01(3);
opr02();
//String opr = new String();
//System.out.println(opr);
System.out.println(opr02());
opr03(TEN, 3);
System.out.println("opr04:" + opr04());
// 메소드 내 명령을 모두 수행하고 리턴되는 값 false가 들어간 "opr04:" + opr04(false)로 출력!
opr05();
opr06();
//System.out.println("opr06:" + opr06());
opr07();
}
// 1. 사칙연산
public static void opr01(int a) {
System.out.printf("%d + %d = %d\n", TEN, a,TEN + a);
System.out.printf("%d - %d = %d\n", TEN, a,TEN - a);
System.out.printf("%d * %d = %d\n", TEN, a,TEN * a);
System.out.printf("%d / %d = %d\n", TEN, a,TEN / a);
System.out.printf("%d %% %d = %d\n", TEN, a,TEN % a);
}
// 2. 대입연산(=, +=, -=, *=, /=, %=)
public static String opr02() {
int res = 0;
System.out.println(res); // 0
res = res + 10;
System.out.println(res); // 10
res += 10;
// res = res + 10;
System.out.println(res); // 20
res -= 5;
// res = rest - 5
System.out.println(res); // 15
return "대입연산 끝!!!!";
}
// 3. 증감연산(++, --)
// 변수의 앞/뒤에 증감연산자가 붙어서, 해당 변수의 값을 1씩 증가 혹은 감소시킨다.
// (앞) 전위 연산자: 연산자를 변수 앞에 붙이면, 연산을 먼저하고 값을 나중에 리턴
// (뒤) 후위 연산자: 연산자를 변수 뒤에 붙이면, 값을 먼저 리턴하고 연산을 나중에
public static void opr03(int a, int b) {
System.out.println(a); // 10
System.out.println(a++); // 10(11)
System.out.println(++a); // 12
System.out.println(a); // 12
int result = a++ + --b + b++ + ++a;
// 12(13)+2(2)+2(3)+14(14) = 30
System.out.println(result);
}
// 4. 논리연산: &&, || -> true, false
public static boolean opr04() {
// & : 그리고
// 둘 다 참이어야 true
System.out.println(true & true); // true
System.out.println(true & false); // false
System.out.println(false & true); // false
System.out.println(false & false); // false
// | : 또는
// 둘 중 하나만 참이면 true
System.out.println(true | true); // true
System.out.println(true | false); // true
System.out.println(false | true); // true
System.out.println(false | false); // false
System.out.println("-------------------------------------");
System.out.println(true && true); // true
System.out.println(true && false); // false
System.out.println(false && true); // false
System.out.println(false && false); // false
System.out.println(true || true); // true
System.out.println(true || false); // true
System.out.println(false || true); // true
System.out.println(false || false); // false
System.out.println("-------------------------------------");
return false;
}
// 5. 비교 연산자
public static void opr05() {
System.out.println(1==2); // false
System.out.println(1!=2); // true
//System.out.println(1>=2);
//System.out.println(1>2);
//System.out.println(1<=2);
//System.out.println(1<2);
}
// 6. 삼항연산자
// (조건)? 참일 때 리턴값 : 거짓일 때 리턴값;
// 참, 거짓의 리턴값은 무조건 같아야 한다.
public static boolean opr06() {
int a = 13;
int res = (TEN>a)? TEN : a;
System.out.println(res);
String result = (TEN > a)? "TEN 이 더 큽니다." : "a가 더 큽니다.";
System.out.println(result);
int b = 15;
int val = (a>b) ? a: ((a<b)? b : a);
System.out.println(val);
return false;
}
// 7. 비트연산자 : &, |, ~, ^, <<, >>
// 값을 0, 1 비트상태에서 연산한 결과
public static void opr07() {
int a = 10;
// 0000 0000 0000 0000 0000 0000 0000 1010;
int b = 2;
// 0000 0000 0000 0000 0000 0000 0000 0010;
System.out.println("a & b = " + (a & b));
// 0000 0000 0000 0000 0000 0000 0000 1010;
// 0000 0000 0000 0000 0000 0000 0000 0010;
// &---------------------------------------
// 0000 0000 0000 0000 0000 0000 0000 0010; //2
System.out.println("a | b = " + (a | b));
// 0000 0000 0000 0000 0000 0000 0000 1010;
// 0000 0000 0000 0000 0000 0000 0000 0010;
// |---------------------------------------
// 0000 0000 0000 0000 0000 0000 0000 1010; // 10
System.out.println(~a);
// 0000 0000 0000 0000 0000 0000 0000 1010;
// 1111 1111 1111 1111 1111 1111 1111 0101; // -11
int c = 10;
System.out.println(c>>2);
// ->0000 0000 0000 0000 0000 0000 0000 10 -> // 10;
// 0000 0000 0000 0000 0000 0000 0000 1010;
System.out.println(Integer.toBinaryString(c>>2) + "(2)");
System.out.println(c << 4);
// 0000 0000 0000 0000 0000 0000 0000 1010;
// 0000 0000 0000 0000 0000 0000 0000 1010 0000;
System.out.println(c >> 1);
// 0 000 0000 0000 0000 0000 0000 0000 101 0;
}
}
728x90
반응형
'Language > Java' 카테고리의 다른 글
[java]자리바꾸기 코드.. (0) | 2020.08.03 |
---|---|
[Java]Class & Method (0) | 2020.07.20 |
[Java] Wrapper Class (0) | 2020.07.20 |
[Java] 데이터TYPE (0) | 2020.07.20 |
[Java] 구조 (0) | 2020.07.20 |