연산자

치로·2024년 7월 17일

연산자

: 프로그램에서 연산을 수행하기 위하여 사용되는 특수기호

1. 연산자 종류

  • 대입 연산자(=) : 변수에 숫자나 문자열 등의 자료를 입력하거나 연산 결과를 다른 변수에 할당
  • 사칙 연산자 : 더하기(+), 빼기(-), 곱하기(*), 나눗셈의 몫(/) 나머지(%)
  • 단항 연산자 : 변수에 대한 연산 결과를 다시 자기 자신에게 적용하는 경우 사용
  • 증감 연산자 : 특정 저장되어 있는 값을 1씩 증가, 감소 시킬 경우 사용
  • 비교 연산자 : 두 개의 변수값 간의 관계를 비교하여 참이나 거짓의 결과를 반환
  • 논리 연산자 : 좌변과 우변을 논리 연산핟. 참일 때는 true, 거짓일 떼는 flse값을 반환

2. 사칙 연산자

  • 일반적인 +, -, *, /%을 수행
  • 사칙연산의 결과는 대입 연산자를 통하여 다른 변수에 대입
    -> 10/3 : 몫만 취하여 3
    -> 10%3 : 나머지만을 취하여 1
  • 모든 수는 0으로 나눌 수 없다

3. 단항 연산자

  • 어떤 변수(x)의 값에 대한 계산 결과를 다시 자기 자신에게 대입하고자 하는 경우의 약식 표현
	int x =100;
	x = x +5; //105
	----------------
	x + =5; // 105
  • 단항 연산자는 모든 사칙 연산자에 표현 가능 : +=, -=, *=, /=, %=

4. 증감 연산자

  • 단항 연산자로 표현할 수 있는 식에서 계산 대상 값이 1일 경우, 덧셈과 뺄세에 대해서는 다시 한 번 축약할 수 있다
  • 덧셈의 경우
	x = x + 1;
	x += 1;
	x++;
	++x; // 다 같은 값
  • 뺄셈의 경우
	x = x - 1;
	x -= 1;
	x--;
	--x;

5. X++와 ++X의 차이

  • 증감 연산자는 그 자체가 다른 연산식의 피연산자로 사용될 수 있다. 이 때, 증감 연산자의 표시 위치에 따라 결과가 서로 다르게 적용
  • X++
    : 증감 연산자가 뒤에 표시되는 경우, 현재의 X의 값을 먼저 수식에 적용하고, 나중에 X에 대한 1 증가를 처리
	int a = 100;
	int x = 1;
 	int y = a + x++; // y=101, x=2
  • ++X
    : 증감 연산자가 앞에 표시되는 경우, 먼저 현재 x의 값을 1 증가 시킨후, 그 결과를 수식에 적용한다
	int a = 100;
	int x = 1;
 	int y = a + ++x; // y=102, x=2

6. 비교 연산자

: 같다, 다르다, 크다(초과), 크거나 같다(이상), 작다(미만), 작거나 같다(이하)에 대한 비교를 수행하는 연산자

  • 같다 : ==

  • 다르다 : != (부정, not)

  • 초과 : >

  • 이상 : >=

  • 미만 : <

  • 이하 : <=

  • 주어진 식이 참인지 거짓인지만 판별 가능하므로, 연산 결과는 boolean 값으로 생성

    		int x = 100;
    	int y = 1;
    		x 비교 연산자 y;
    		boolean result = x == y; -> false
    		boolean result2 = x != y; -> true
    	
    		System.out.println("result"); // false
    		System.out.println("result2"); // true

7. 논리 연산자

2-1. 두 개 이상의 비교 연산자의 결과는 boolean 값에 대해 추가로 AND나 OR 연산을 수행하여 결과를 얻는다.
2-2. OR의 의미를 갖는 || (ex. 잠실역 2, 8호선)

  • || 연산자는 두 개의 boolean 값을 비교하여 둘 중 하나라도 true인 경우 결과는 true

    2-3. AND의 의미를 갖는 && (ex. 아이디, 비밀번호)

  • && 연산자는 두 개의 boolean 값을 비교하여 모두 true인 경우만 결과값이 true

8. 삼항 연산자

: 조건 연산자의 한 종류로 if~else 조건문과 같은 연산을 수행 ///코드가 짧고 직관적
if () {

} else {

}

1-1. 문법

  • 조건식 ? 반환값1 : 반환값2; = if () ture : false;
  • 물음표 앞의 조건식에 따라 결과값이 참이면 반환값1을 반환하고, 결과값이 거짓이면 반환값2를 반환

연습 코드

package operator;

public class Main01 {

	public static void main(String[] args) {
		int num1 =12;
		int num2 = 8;
		
		int result1 = num1 + num2;
		int result2 = num1 - num2;
		int result3 = num1 * num2;
		int result4 = num1 / num2;
		int result5 = num1 % num2;
		
		System.out.println("12 + 8 = " + result1);
		System.out.println("12 - 8 = " + result2);
		System.out.println("12 * 8 = " + result3);
		System.out.println("12 / 8 = " + result4);
		System.out.println("12 % 8 = " + result5);
	}

}
package operator;

public class Main02 {

	public static void main(String[] args) {
		// 나눗셈
		int num1 = 7;
		int num2 =3;
		int result1 = num1 / num2;
		System.out.println("7 / 3 = " + result1);
		
		// 0으로 나누기
		int zero = 0;
		int result2 = num1 / zero;
		
		System.out.println("7 / 0 = " + result2);
	}

}
package operator;

public class Main03 {

	public static void main(String[] args) {
		int source = 100;
		
		source += 100; // source = source + 100; 200
		source -= 50; // source = source - 50; 150
		source *= 2; // source = source * 2; 300
		source /= 100; // source = source / 100; 3
		source %= 2; // source = source % 2; 1
		
		System.out.println(source);
	}

}
package operator;

public class Main04 {

	public static void main(String[] args) {
		int plus_num = 1;
		plus_num = plus_num + 1;
		plus_num += 1;
		plus_num++;
		++plus_num;
		System.out.println(plus_num);
		
		int minus_num = 5;
		minus_num = minus_num - 1;
		minus_num -= 1;
		minus_num--;
		--minus_num;
		System.out.println(minus_num);
	}

}
package operator;

public class Main01 {

	public static void main(String[] args) {
		// x1값과 y1값의 결과 확인
		int a1 = 100;
		int x1 = 1;
		int y1 = a1 + x1++;
		System.out.println("x1 = " + x1);
		System.out.println("y1 = " + y1);
		System.out.println("---------");
		
		//x2값과 y2값의 결과 확인
		int a2 = 100;
		int x2 = 1;
		int y2 = a2 + ++x2;
		System.out.println("x2 = " + x2);
		System.out.println("y2 = " + y2);
	}

}
package operator;

public class Main03 {

	public static void main(String[] args) {
		int a = 100;
		int b = 200;
		int x = 5;
		int y = 3;
		
		// 논리 연산에 대한 결과는 boolean형 
		boolean result1 = a != b || a==b; // T || F -> T
		System.out.println(result1);
		
		boolean result2 = a < b || x > y; // t || t -> t
		boolean result3 = a < b || x < y; // t || f -> t
		boolean result4 = a > b || x > y; // f || t -> t
		boolean result5 = a > b || x < y; // f || f -> f
		System.out.println(result2);
		System.out.println(result3);
		System.out.println(result4);
		System.out.println(result5);
		System.out.println("------");
		
		//boolean 값 끼리는 논리 연산이 가능
		boolean r1 = a >= b; // f
		boolean r2 = x >= y; // t
		boolean result6 = r1 && r2; // f && t -> f
		System.out.println(result6);
		boolean result7 = r1 || r2; // f || t -> t
		System.out.println(result7);
		System.out.println("------");
		
		boolean success = true;
		boolean fail = !success;
		System.out.println(fail);
	}

}
package condition;

public class Main01 {

	public static void main(String[] args) {
		//조건식
		int result;
		if (5<4) {
			result = 50;
		} else {
			result = 40;
		}
		System.out.println(result);
		
		// 삼항 연산자
		// 변수 = 조건식 ? 반환값1 : 반환값2;
		int result2 = (5<4) ? 50 : 40;
		System.out.println(result2);
		
	}

}
package condition;

public class Main02 {

	public static void main(String[] args) {
		int age = 1;
		// 만약 age살 21살 이상이면, "Beer"를 반환하고
		// 그렇지 않다면 "Juice"를 반환하라
		String beverage = (age >= 21) ? "Beer" : "Juice";
		System.out.println(beverage);
	}

}

0개의 댓글