Starbucks Caramel Frappuccino
본문 바로가기
  • 그래 그렇게 조금씩
JAVA/Java Start

3. 연산자(산술, 문자열, 우선순위, 증감, 비교, 논리, 대입)

by Toughie 2024. 1. 14.

 

연산자(산술, 문자열, 우선순위, 증감, 비교, 논리, 대입)

중간에 글이 다 날아가서.. 컴팩트하게 다시 작성함 ㅜㅜ

 

산술 연산자

public class Operator1 {

    public static void main(String[] args) {
        int a = 5;
        int b = 2;
        
        int sum = a + b;
        System.out.println("sum = " + sum);
        
        int diff = a - b;
        System.out.println("diff = " + diff);

        int multi = a * b;
        System.out.println("multi = " + multi);

        int div = a / b; //형변환으로 인해 정수만 나옴
        System.out.println("div = " + div);

        int mod = a % b;
        System.out.println("mod = " + mod);

        double result = (double) a / b;
        System.out.println("result = " + result);

//        int zeroDivisionError = a / 0;
        // Exception in thread "main" java.lang.ArithmeticException: / by zero at operator
    }
}

문자열 더하기

문자열 + 정수의 경우 정수가 문자열로 자동 변환됨

public class Operator2 {

    public static void main(String[] args) {
        //문자열과 문자열 더하기1
        String result1 = "hello" + "world";
        System.out.println(result1);

        // 더하기2
        String s1 = "string1";
        String s2 = "string2";
        String result2 = s1 + s2;
        System.out.println(result2);

        // 문자열고 숫자 더하기
        String result3 = "a + b = " + 7;
        // 숫자가 문자열로 형변환됨.
        System.out.println("result3 = " + result3);

        int num = 20;
        String str = "a + b = ";
        String result4 = str + num;
        System.out.println(result4);
    }
}

연산 우선순위

상식적으로 괄호, 곱하기, 더하기 순 정도로 생각. 

public class Operator3 {

    public static void main(String[] args) {
        int sum1 = 1 + 2 * 3;
        System.out.println("sum1 = " + sum1);

        int sum2 = (1 + 2) * 3;
        System.out.println("sum2 = " + sum2);

        int sum3 = 2 * 2 + 3 * 3;
        System.out.println("sum3 = " + sum3);

        int sum4 = (2 * 2) + (3 * 3);
        System.out.println("sum4 = " + sum4);
    }
}

증감 연산자

전위 증감 연산자 - 값 증감 먼저

후위 증감 연산자 - 연산 후 값 증감

public class OperatorAdd1 {

    public static void main(String[] args) {
        int a = 0;
        a = a + 1;
        System.out.println("a = " + a);
        
        a = a + 1;
        System.out.println("a = " + a);
        
        //증감 연산자 변수의 값에 +1, -1
        ++a;
        System.out.println("a = " + a);
        
        --a;
        System.out.println("a = " + a);
    }
}
public class OperatorAdd2 {

    public static void main(String[] args) {

        int a = 1;
        int b = 0;

        // 전위 증감 연산자
        b = ++a; //a의 값을 먼저 증가시키고 그 결과를 b에 대입
        System.out.println("a = " + a + ", b = " + b);
        //a도 2 b도 2

        a  = 1;
        b = 0;

        // 후위 증감 연산자
        b = a++; //a의 현재값을 b에 먼저 할당하고, a의 값을 1을 증가시킴
        System.out.println("a = " + a + ", b = " + b);
    }
}

비교 연산자

public class Comp1 {

    public static void main(String[] args) {

        int a = 2;
        int b = 3;

        System.out.println(a == b);
        System.out.println((a != b));
        System.out.println(a > b);
        System.out.println(a < b);
        System.out.println(a >= b);
        System.out.println(a <= b);
        
        boolean result = (a == b);
        System.out.println("result = " + result);
    }
}

문자열 비교

==은 정확한 비교가 어려운 상황이 있기 때문에 .equals() 메서드 활용

public class Comp2 {

    public static void main(String[] args) {
        String str1 = "문자열1";
        String str2 = "문자열2";

        boolean result1 = "hello".equals("hello");
        boolean result2 = str1.equals("문자열1");
        boolean result3 = str1.equals(str2);

        //command + d 아래줄로 해당 줄 복사 붙여넣기
        System.out.println(result1);
        System.out.println(result2);
        System.out.println(result3);

        //command shift enter -> 문장 완성
        System.out.println("complete");
    }
}

논리 연산자

public class Logical1 {

    public static void main(String[] args) {
        System.out.println("&& AND 연산");
        System.out.println(true && true);
        System.out.println(true && false);
        System.out.println(false && false);

        System.out.println("|| OR 연산");
        System.out.println(true || true);
        System.out.println(true || false);
        System.out.println(false || false);

        System.out.println("! NOT 연산");
        System.out.println(!true);
        System.out.println(!false);

        boolean a = true;
        boolean b = false;

        System.out.println(a && b);
        System.out.println(a || b);
        System.out.println(!a);
        System.out.println(!b);
        
        boolean result = a > 10 && a < 20;
        boolean result2 = 10 < a && a < 20;
    }
}

할당 연산자

(축약)복합 할당 연산자

public class Assign1 {

    public static void main(String[] args) {
        int num1 = 5;
        num1 += 3;
        num1 -= 2;
        num1 *= 4;
        num1 /= 3;
        num1 %= 5;
        System.out.println(num1);
    }
}

 

 

학습 출처

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

'JAVA > Java Start' 카테고리의 다른 글

5. 반복문 (while, for, continue/break)  (0) 2024.01.20
4. 조건문(if, switch, 삼항 연산자)  (0) 2024.01.15
2. 변수(variable)_(package, psvm)  (0) 2024.01.07
1. 기초 이론, 출력, 주석  (0) 2023.12.29
0. JAVA 먹기  (0) 2023.12.29