본문 바로가기

JAVA

연산자(Operator)

반응형
SMALL
연산자

기능이 있는 특수문자이며, 연산을 위해 사용되는 부호이다.

 

연산자의 우선순위로는

1. 최우선 연산자

2. 단항 연산자

3. 산술 연산자

4. 쉬프트 연산자

5. 관계 연산자

6. 논리 연산자

7. 삼항 연산자

8. 대입 연산자

순으로 이루어져 있다.

최우선 연산자
  1. () 괄호 연산자
  2. . 참조 연산자
  3. [] 배열 첨자 연산자 : 배열의 갯수 혹은 배열의 인덱스를 뜻한다.
단항 연산자, 증감 연산자
  1. + 양수
  2. - 음수
  3. ! not(boolean 타입일 때 사용) → true에서 false로 바꿔준다.(0을 1로, 1을 0으로 바꿔준다.)
  • ++ 증가 연산자
  • -- 감소 연산자

* 전위형 : 해당 라인부터 바로 적용(++a)

* 후위형 : 다음 라인부터 적용(a++)

public class Oper1 {

   public static void main(String[] args) {
     
     // 단항 연산자
      int num = 10;
      System.out.println(+num); // 10
      System.out.println(-num); // -10
      
      boolean isTrue = true;
      System.out.println(isTrue); // true
      System.out.println(!isTrue); // false
      
      // 증감 연산자
      int num1 = 5;
      System.out.println(num1++); // 5
      System.out.println(num1); // 6
      
      System.out.println(++num1); // 7
      System.out.println(num1); // 7
      
      System.out.println(num1--); // 7
      System.out.println(num1); // 6
      
   }

}

 

산술 연산자
  1. + 더하기 "a" + "b" = "ab" → 문자열일 경우
  2. - 빼기
  3. * 곱하기
  4. / 나누기 → 0으로 나누면 err 난다.
  5. % 나머지
import java.util.Scanner;

public class Oper1 {

   public static void main(String[] args) {
      
      // 산술연산자
      int num1 = 10;
      int num2 = 3;
      
      System.out.println(num1 + num2); // 13
      System.out.println(num1 - num2); // 7
      System.out.println(num1 * num2); // 30
      System.out.println(num1 / num2); // 3
      System.out.println(num1 / 0); // err
      System.out.println(num1 % num2); // 1
      
      	// ex) 코인노래방 문제
		// 사용자에게 금액을 입력받고 부를 수 있는 노래 곡 수와 잔돈을 출력하자.
		// 1곡당 300원
		// 입력예시 : 금액을 입력하세요.(1000원 입력시)
		// 출력예시 : 3곡을 부를 수 있으며, 잔돈은 100원 입니다.
		
		Scanner sc = new Scanner(System.in);
		final int PRICE = 300; // 상수이므로 대문자로 정의하며, final을 붙여준다.
		int money = 0;
		int count = 0;
		int change = 0;
		
		System.out.println("금액을 입력하세요.");
		money = sc.nextInt(); // 사용자가 입력한 값이다.
        
		count = money / PRICE; // 몫 값을 나타낸다.
		change = money % PRICE; // 나머지 값을 나타낸다.

		System.out.println(count + "곡을 부를 수 있으며, 잔돈은 " + change + "원 입니다.");
		// 1000원 입력시
        // 3곡을 부를 수 있으며, 잔돈은 100원 입니다.
      
         }

}

 

쉬프트 연산자, 비트 연산자
  • >> (우쉬프트) A를 오른쪽으로 B만큼 이동 ex) A >> B → A  / (2의 B제곱)과 같은 뜻이다.
  • << (좌쉬프트) A를 왼쪽으로 B만큼 이동 ex) A << B → A  * (2의 B제곱)과 같은 뜻이다.

비트 : 0과 1의 값이 들어가는 컴퓨터에서 사용하는 가장 작은 정보 단위이다.
장점 : 사람의 언어를 컴퓨터의 언어로 바꾸는 과정을 생략하니까 속도가 빠르다.

public class Oper2 {

	public static void main(String[] args) {

		// << 쉬프트 연산자
		System.out.println(10<<1); // 20
		System.out.println(20>>1); // 10
	}

}

 

관계 연산자
  1. == 같다
  2. != 같지 않다
  3. >, < 초과, 미만
  4. >=, <= 이상, 이하
import java.util.Scanner;

public class Oper3 {

	public static void main(String[] args) {
    
		// 관계 연산
		System.out.println(1 == 3); // false
		System.out.println(1 != 3); // true
		System.out.println(1 > 3); // false
		System.out.println(1 >= 3); // false
        
		// ex)
		// 사용자에게 숫자를 1개 입력받고 정답과 일치하는지를 true, false를 사용해서 출력한다.
		// 정답 : 30
		
		Scanner sc = new Scanner(System.in);
		int num = 0;
		int answer = 30;
		boolean result = false; // 관계 연산자 boolean 초기화
        
		System.out.println("정수를 입력하세요.");
		num = sc.nextInt();
		result = answer == num;
		System.out.println(result); // num 값이 30이면 true, 나머지는 false
        	}

}

 

논리 연산자
  1. &&(AND) A && B → A와 B가 둘다 참이라면 참이다.
  2. ||(OR) A||B → A와 B중에 하나라도 참이라면 참이다.

* 만약에 &&이랑 ||을 같이 사용하면, &&가 우선순위가 높다.

public class Oper3 {

	public static void main(String[] args) {
    
    	// 논리 연산자
		System.out.println(true && false); // false
		System.out.println(true || false); // true
		
		System.out.println(1 == 3 && 1 == 1); // false
		System.out.println(1 == 3 || 1 == 1); // true
        
        	}

}

 

삼항 연산자
  • 조건식 ? 참일 경우의 값 : 거짓일 경우의 값
  • ex)  int result = 10 > 3 ? 10 : 3; → 10이 3보다 크면 10을 반환하고, 작으면 3을 반환한다. // 10
import java.util.Scanner;

public class Oper5 {

   public static void main(String[] args) {

      // 삼항 연산자
      // 사용자에게 숫자를 입력받고 양수인지 0인지 음수인지 출력
      System.out.println("숫자를 입력하세요.");
      Scanner sc = new Scanner(System.in);
      String result = null;
      int num = 0;
      num = sc.nextInt();
      
      result = num > 0 ? "양수" : num == 0 ? "0입니다" : "음수"; // 결과값이 3일 경우
      System.out.println(result); // 양수
      
      // ex)
      // 사용자에게 숫자를 입력받고 정답 또는 오답으로 출력
      // 정답 = 35
      System.out.println("숫자를 입력하세요");
      Scanner sc = new Scanner(System.in);
      String result = null;
      int num = 0;
      int answer = 35;
      num = sc.nextInt();
      
      result = num == answer ? "정답" : "오답"; // 결과값이 10일 경우
      System.out.println(result); // 오답
      
      // ex2)
      // 당신은 사막을 동물 1마리와 모험을 떠나려고 합니다.
      // 함께할 동물을 선택하세요(1. 사자 2. 원숭이 3. 소 4. 말 5. 양)이라고 출력하고
      // 숫자를 입력받습니다.
      
      // 숫자에 따라 다른 결과 메세지를 출력
      // 1. 자존심 2. 우정 3. 직업 4. 가족 5. 사랑
      // 당신에게 가장 소중한것은 00입니다. 라고 출력
      
      // 입력예시 : 2
      // 출력예시 : 당신에게 가장 소중한 것은 우정입니다.
      
      String rion = "자존심";
      String monkey = "우정";
      String cow = "직업";
      String horse = "가족";
      String sheep = "사랑";
      String result = null;
      int choice = 0;
      
      Scanner sc = new Scanner(System.in);
      System.out.println("당신은 사막을 동물 1마리와 모험을 떠나려고 합니다.");
      System.out.println("함께할 동물을 선택하세요(1. 사자 2. 원숭이 3. 소 4. 말 5. 양)");
      choice = sc.nextInt(); // 2
     
      
      // 1,2,3,4
      result = choice == 1 ? rion : 
                     choice == 2 ? monkey : 
                                   choice == 3? cow : 
                                           choice == 4 ? horse : sheep;
      
      System.out.printf("당신에게 가장 소중한 것은 %s입니다.", result);
      // 당신에게 가장 소중한 것은 우정입니다.
      
         }

}

 

대입 연산자(복합 대입 연산자, 누적 연산자)
  1. +=
  2. -=
  3. /=
  4. *=
  5. %=
public class Oper3 {

	public static void main(String[] args) {
    
   		// 대입 연산자
		int num = 10;
		
		num +=1;
		// num = num + 1;
		System.out.println(num); // 11
        
		num -= 1;
		// num = num - 1;
		System.out.println(num); // 10

		num *= 10;
		// num = num * 10;
		System.out.println(num); // 100

		num /= 5;
		// num = num / 5;
		System.out.println(num); // 20

		num %= 3;
		// num = num % 3;
		System.out.println(num); // 2

	}

}
반응형
LIST

'JAVA' 카테고리의 다른 글

클래스  (0) 2022.11.06
메소드  (0) 2022.10.30
배열  (0) 2022.10.23
제어문  (0) 2022.10.19
Hello JAVA;  (0) 2022.10.14