[자바] 기초문법정리(231229)

brand_mins·2023년 12월 29일

Java

목록 보기
29/47

1. 연산자

1) 산술 연산자

  • 실무에서 사용하는 산술 연산자는 다음과 같다.
1. 산술 연산자: +, -, *, /, %
2. 증감 연산자: ++, --
3. 비교 연산자: ==, !=, >, <, >=, <=
4. 논리 연산자: &&(and), ||(or), !(NOT)
5. 대입 연산자: =, +=, -=, *=, /=, %=
6. 삼항 연산자: ? :

(1) 연산자와 피연산자

3 + 4
  • 피연산자: 3, 4: 연산 대상
  • 연산자: 연산 기호, +, -
package operator;

public class Operator1 {
    public static void main(String[] args) {
        //변수 초기화
        int a = 5;
        int b = 2;

        // 덧셈
        int sum = a+b;
        System.out.println("a + b = " + sum);

        // 뺄셈
        int diff = a - b;
        System.out.println("a - b = " + diff);

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

        // 나눗셈
        int div = a / b;
        System.out.println("a / b = " + div);

        // 나머지
        int mod = a % b;
        System.out.println("a % b = " + mod);
    }
}

<주의> 0으로 나누기: 10과 0을 나눌 수 없다.
실행하면 다음과 같은 오류 발생

Exception in thread "main" java.lang.ArithmeticException: / by zero

2) 문자열 더하기

  • 자바는 문자열에도 더할 수 있다.
package operator;

public class Operator2 {
    public static void main(String[] args) {
        // 문자열과 문자열 더하기
        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 = " + 10;
        System.out.println(result3);

        // 문자열과 숫자 더하기2
        int num = 20;
        String str = "a + b = ";
        String result4 = str + num;
        System.out.println(result4);

    }
}

3) 연산자 우선순위

  • 수학과 같이 곱셈, 나누기 순으로 먼저 계산하고 나중에 덧셈, 뺄셈 계산한다.
  • 식에 괄호가 있다면 괄호를 먼저 계산 후 나중에 계산하자.
package operator;

public class Operator3 {

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

    }
}
package operator;

public class Operator4 {

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

(1) 연산자 우선순위 정리

1. 상식선에서 우선순위 사용
2. 애매하면 괄호 넣자

4) 증감 연산자

  • 증가 및 감소 연산자를 줄여 증감 연산자
  • 이들은 값을 증가시키거나 감소
package operator;

public class OperatorAdd1 {

    public static void main(String[] args) {
        int a = 0;

        a = a + 1;
        System.out.println("a = " + a); // 1

        a = a + 1;
        System.out.println("a = " + a); // 2

        //증감 연산자
        ++a;  // a = a+1
        System.out.println("a = " + a); // 3
        ++a;  // a = a+1
        System.out.println("a = " + a); // 4

        --a;
        System.out.println("a = " + a); // 3
    }
}

(1) 전위, 후위 증감연산자

  • ++a
설명: a를 먼저 1씩 증가한다.
  • a++
설명: a값을 먼저 연산한 후 이후에 1씩 증가
package operator;

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 = 1;
        b = 0;

        b = a++; // a의 현재값을 b에 대입하고 그 이후 a값 증가
        System.out.println("a = " + a + ", b = " + b);
    }
}

5) 비교 연산자

  • 두 값을 비교하는데 사용함
  • 비교 연산자는 조건문과 함께 사용
  • 비교 연산자를 사용시 true or false 결과가 나옴
package operator;

public class Comp1 {

    public static void main(String[] args) {
        int a = 2;
        int b = 3;

        System.out.println(a == b); // false
        System.out.println(a != b); // true
        System.out.println(a > b); // false
        System.out.println(a < b); // true
        System.out.println(a >= b); // false
        System.out.println(a <= b); // true

        // 결과를 boolean 변수에 담을 수 있음
        boolean result = a == b;
        System.out.println(result); // false
    }
}

(1) 문자열 비교

  • 문자열이 같은지 비교할때 .equals() 메소드 사용
  • ==를 사용하면 성공할때도 있고 실패할때도 있다.
package operator;

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); // 문자열 변수 비교

        System.out.println(result1); // true
        System.out.println(result2); // true
        System.out.println(result3); // false
    }
}

6) 논리 연산자

  • boolean형인 true, false 비교하는데 사용
package operator;

public class Logical1 {

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

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

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

        System.out.println("변수 활용");
        boolean a = true;
        boolean b = false;
        System.out.println(a && b); // false
        System.out.println(a || b); // true
        System.out.println(!a); // false
        System.out.println(!b); // true
    }
}
package operator;

public class Logical2 {

    public static void main(String[] args) {
        int a = 15;
        // a는 10보다 크고 20보다 작다
        boolean result = a > 10 && a < 20; // (a>10) && (a<20)
        System.out.println("result = " + result);
    }
}

7) 대입 연산자

  • 대입 연산자는 값을 변수에 할당하는 연산자

(1) 축약(복합) 대입 연산자

  • +=, -=, *=, /=, %=
package operator;

public class Assign1 {

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

    }
}
profile
IT 개발자가 되기 위한 기록

0개의 댓글