본문 바로가기
JavaStudy

b.operator

by nyamnmm 2024. 7. 3.
Operator


산술 연산자
  • + : 더하기
  • - : 빼기
  • * : 곱하기
  • / : 나누기
  • % : 나눈 후 나머지값
    ▷ int a = (10 % 4);  // a = 2

 

복합 대입 연산
  • 산술 연산자와 대입 연산자(=)를 결합해서 사용할 수 있다.
  • 반드시 산술 연산자 다음에 대입 연산자를 써야한다.
  • 연산과 대입을 축약해서 나타냈을 뿐, 결과는 같다. ( a + 2 와 a += 2  는 동일하다)
    • +=
    • -=
    • *=
    • /=

 

증감 연산자
  • ++ : 변수에 담긴 값을 1 증가 시켜주는 연산자
    ▷ n++;
  • -- : 변수에 담긴 값을 1 감소시켜주는 연산자
    ▷ n--;
  • 순서에 따른 처리
    • (증감 연산자) 변수 : 전위연산, 변수에 증감을 먼저 하고 나머지 코드를 실행(처리)한다.
      ▷ int a = 1;
        int b = (++a) + 2;
        // ++a가 먼저 실행되어 a = 2가 되고 후에 b = a + 2가 실행된다. 따라서 값은 a = 2, b = 4
    • 변수(증감 연산자) : 후위연산, 앞선 코드 먼저 실행(처리)하고 마지막에 변수에 증감한다.
      ▷ int a = 1;
        int b = (a++) + 2;
        // b = a + 2를 먼저 실행하고 a++이 실행된다. 따라서 값은 a = 2, b = 3

 

package b.operator;

import java.util.Scanner;

public class Operator {
	public static void main(String[] args) {
    	// 산술 연산자
        int a = (30 + 400);	// a = 430
        int b = (a - 30);	// b = 400
        int c = (a / b);	// c = 1
        int d = (a % b);	// d = 30;
        
        // 복합 대입 연산자
        a += 20;	// a = 450
        b -= 50;	// b = 350
        c /= 4;		// c = 0
        d %= 12;	// d = 6
        
        // 증감 연산자
        a = (c++) + d;		// a = 0 + 6
        b = a + (++c);		// b = 6 + 2
        c = (a--) + (--d);	// c = 6 + 5
        d = (b++) - (--a);	// d = 8 - 4
        
        // a = 4, b = 9, c = 11, d = 4
        System.out.println("a = " + a);
        System.out.println("b = " + b);
        System.out.println("c = " + c);
        System.out.println("d = " + d);
    }
}

 


 

비교 연산자 / 관계 연산자
  • 조건을 만족하면 true(참), 만족하지 않으면 false(거짓)을 반환한다.
    즉, 결과는 논리값이다.
  • 대소 비교 연산
    • < : 왼쪽의 값이 오른쪽의 값보다 작다(미만)
    • > : 왼쪽의 값이 오른쪽의 값보다 크다(초과)
    • <= : 왼쪽의 값이 오른쪽의 값보다 작거나 같다(이하)
    • >= : 왼쪽의 값이 오른쪽의 값보다 크거나 같다(이상)
  • 동등 비교 연산
    • == : 왼쪽의 값과 오른쪽의 값은 같다(일치한다)
    • != : 왼쪽의 값과 오른쪽의 값은 다르다(불일치한다)

 

논리 연산자
  • 두 개의 논리값을 연산해주는 연산자.
  • 논리연산한 결과도 논리값이 된다.
  • &&
    : 왼쪽, 오른쪽 두 논리값이 모두 true일 때만 결과가 true가 된다.

      하나라도 false가 나오면 결과는 false이 되기에, 앞의 결과가 false일 경우 뒤의 조건은 실행하지 않는다.
    • true && true → true
    • true && false → false
    • false && true → false
    • false && false → false
  • ||
    : 왼쪽, 오른쪽 두 값 중 하나라도 true라면 결가는 true가 된다.

      앞의 결과가 true일 경우 뒤의 조건은 실행하지 않는다.
    • true || true →  true
    • true || false → true
    • false || true → true
    • false || false → false

 

논리 부정 연산자
  • 논리값(true / false)을 반대로 바꾸는 연산자
  • 결과도 논리값으로 나온다
  • [표현식] !논리값
    ▷ boolean b1 = !true;
      boolean b2 = !(2001 < 1988);

 

삼항 연산자
  • [표현식] (조건식) ? (조건식이 참일 경우 결과값) : (조건식이 거짓일 경우 결과값)
  • 조건식은 반드시 true 또는 false가 나오는 논리값이어야한다.
  • 주로 비교, 논리 연산자를 통해서 작성한다.
    int n1 = (3 < 10) ? 10 : 20;
      int n2 = (28 >= 24) ? 1976 : 1977;
    → n1은 false(거짓)이므로 20, n2는 true(참)이므로 1976이다.

 

package b.operator;

import.java.Scanner;

public class Operator {
	public static void main(String[] args) {
    	// 비교 연산자
        int a = 10;
        int b = 3;
        
        System.out.println("[ a = 10 , b = 3 ]");
        
        System.out.println("a > b : " + (a > b));
        System.out.println("a < b : " + (a < b));
        
        System.out.println("a == b : " + (a == b));
        System.out.println("a != b : " + (a != b));
        
        System.out.println("a >= b : " + (a >= b));
        System.out.println("a <= b : " + (a <= b) + "\n");
        
        // 논리 연산자
        boolean res1 = (a > 10) && (b <= 20);
        boolean res2 = (a >= 10) && (b == 20);
        boolean res3 = (a < 10) && (b >= 20);
        boolean res4 = (a == 10) && (b < 20);
        
        boolean res5 = (a > 10) || (b <= 20);
        boolean res6 = (a >= 10) || (b == 20);
        boolean res7 = (a < 10) || (b >= 20);
        boolean res8 = (a == 10) || (b < 20);
        
        System.out.println("(a > 10) && (b <= 20) : " + res1);
        System.out.println("(a >= 10) && (b == 20) : " + res2);
        System.out.println("(a < 10) && (b >= 20) : " + res3);
        System.out.println("(a == 10) && (b < 20) : " + res4 + "\n");
        
        System.out.println("(a > 10) || (b <= 20) : " + res5);
        System.out.println("(a >= 10) || (b == 20) : " + res6);
        System.out.println("(a < 10) || (b >= 20) : " + res7);
        System.out.println("(a == 10) || (b < 20) : " + res8 + "\n");
        
        // 논리 부정 연산자
        boolean nb1 = !(a == b);
        boolean nb2 = !((a != 20) || (b == 3));
        boolean nb3 = !res1;
        
        System.out.println("!(3 > 10) : " + !(3 > 10));
        System.out.println("!(a == b) : " + nb1);
        System.out.println("!((a != 20) || (b == 3) : " + nb2);
        System.out.println("!res1 : " + nb3 + "\n");
        
        // 삼항 연산자 < 시험 점수를 입력 받아 합격, 불합격 출력하기 >
        Scanner sc = new Scanner(System.in);
        System.out.print("시험 점수 입력 : ");
        int score = sc.nextInt();
        
        String result = (score >= 60) ? "합격입니다!" : "불합격입니다.";
        System.out.println("결과 : " + result);
    }
}

 

 


 

문자(char)와 숫자 간의 연산
  • 문자의 아스키코드 값을 통해 연산이 가능하다.
  • 명시적 변환으로 연산 결과값에 대응하는 문자로 변환이 가능하다.
    ▷ int i = ('A' + 23);
    ▷ char ch = (char)('A' + 32);
    ▷ boolean b1 = ( 'A' > 60);
    ▷ boolean b2 = ('A' == 65) && ('a' >= 30);

 

문자열(String) 비교
  • String(문자열)은 참조변수(객체를 담는 변수)이기에 == 로 동등 비교가 불가능하므로, equals()를 이용해야한다.
  • [표현법] (문자열).equals(비교값);
    ▷ str.equals("ABC"); 또는 str.equals(str2);
  • String(문자열)끼리만 비교가 가능하다.
  • 결과는 일치하면 true(참), 일치하지 않으면 false(거짓)을 반환한다.

 

package b.operator;

public class Operator {
	public static void main(String[] args) {
        // 문자와 숫자 간의 연산
        char ch = 'A';
        int i = ('A' + 32);
        boolean b = (char)i == 'a';
        
        System.out.println("A + 32 = " + i);
        System.out.println("A + 32를 아스키코드로 변환한 문자와 a는 같다 : " + b + "\n");
        
        // 문자열 비교
        String str1 = "ABC";
        String str2 = "가나다";
        String str3 = "abc";
        
        System.out.println("[ str1 = ABC , str2 = 가나다 , str3 = abc ]");
        System.out.println("str1과 str2는 같다 : " + (str1.equals(str2)));
        System.out.println("str2와 str3은 다르다 : " + !(str2.equals(str3)));
        System.out.println("str1과 str3은 같다 : " + (str1.equals(str3)));
        System.out.println("str2와 \"가나다\"는 같다 : " + (str2.equals("가나다")));
    }
}

'JavaStudy' 카테고리의 다른 글

e.array  (0) 2024.07.08
d.loop  (1) 2024.07.05
c.control  (0) 2024.07.04
a.basic  (1) 2024.07.01