JAVA 멍충이 탈출기 2

sein lee·2024년 3월 11일
0

java-study

목록 보기
6/12
post-thumbnail
post-custom-banner

연산자

연산자 : 연산 기호
피연산자 : 연산의 대상이 되는 것

산술연산자

숫자를 계산하는데 사용된다.
<Operator1.java>

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); // 출력: a + b = 7

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

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

        // 나눗셈
        int div = a / b;
        System.out.println("a / b = " + div); // 출력: a / b = 2
        //int형끼리 계산 하면 결과도 int로만 나온기 떄문에 2
        
        // 나머지
        int mod = a % b;
        System.out.println("a % b = " + mod); // 출력: a % b = 1
    }
}

주의!!

  • type에 따라 나눈결과 : ex) int / int = int
    -> 형변환 사용
  • 0으로 나누기 : 숫자는 0으로 나눌 수 없다
    -> Exception in thread "main" java.lang.ArithmeticException: / by zero 라는 에러

문자열 더하기

<Operator2.java>

package 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);

        //문자열과 숫자 더하기1
        //문자열 + 숫자 -> 문자열 + 문자열
        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);
    }
}

<결과>

연산자 우선순위

<Operator3.java>

package operator;

public class Operator3 {
    public static void main(String[] args) {
        int sum1 = 1 + 2 * 3; //1 + (2 * 3)과 같다.
        int sum2 = (1 + 2) * 3;
        System.out.println("sum1 = " + sum1); //sum1 = 7
        System.out.println("sum2 = " + sum2); //sum2 = 9
    }
}

<결과>

우선순위
1. 괄호 ()
2. 단항 연산자 (예: ++ , -- , ! , ~ , new , (type) )
3. 산술 연산자 ( , / , % 우선, 그 다음에 + , - )
4. Shift 연산자 ( << , >> , >>> )
5. 비교 연산자 ( < , <= , > , >= , instanceof )
6. 등식 연산자 ( == , != )
7. 비트 연산자 ( & , ^ , | )
8. 논리 연산자 ( && , || )
9. 삼항 연산자 ( ? : )
10. 대입 연산자 ( = , += , -= ,
= , /= , %= 등등)

증감 연산자

a = a+1 -> ++a
a = a-1 -> --a

전위, 후위 증감연산자 : 피연산자 앞에 두거나 뒤에 둘 수 있으며 연산자의 위치에 따라 연산이 수행되는 시점이 달라진다

  • ++a
  • a++

<OperatorAdd2.java>

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 = 2, b = 2

        // 후위 증감 연산자 사용 예
        a = 1; // a 값을 다시 1로 지정
        b = 0; // b 값을 다시 0으로 지정
        b = a++; // a의 현재 값을 b에 먼저 대입하고, 그 후 a 값을 증가시킴
        System.out.println("a = " + a + ", b = " + b); // 결과: a = 2, b = 1
    }
}

<결과>

비교 연산자

== : 동등성 (equal to)
!= : 불일치 (not equal to)
: 크다 (greater than)
< : 작다 (less than)
= : 크거나 같다 (greater than or equal to)
<= : 작거나 같다 (less than or equal to)

true, false 로 결과가 나온다.

문자열 비교는 ==이 아니라 .equals() 메서드를 사용한다.

<Comp2.java>

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 = " + result1);
        System.out.println("result2 = " + result2);
        System.out.println("result3 = " + result3);
    }
}

<결과>

논리 연산자

boolean형인 true, false 를 비교하는데 사용

&& (그리고) : 두 피연산자가 모두 참이면 참을 반환, 둘중 하나라도 거짓이면 거짓을 반환
|| (또는) : 두 피연산자 중 하나라도 참이면 참을 반환, 둘다 거짓이면 거짓을 반환
! (부정) : 피연산자의 논리적 부정을 반환. 즉, 참이면 거짓을, 거짓이면 참을 반환

<Logical2.java>

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);
    }
}

<결과>

대입 연산자

= 으로 변수에 값을 할당할 수 있다.

  • 축약(복합)대입연산자
    산술 연산자와 대입 연산자를 한번에 축약해서 사용
    연산자 종류: += , -= , = , /= , %=
    i = i+3 -> i+=3
    i = i
    4 -> i *=4

<Assign1.java>

package operator;

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

문제와 풀이

<OperationEx1.java>

package operator;

public class OperationEx1 {
    public static void main(String[] args) {
        int num1 = 10;
        int num2 = 20;
        int num3 = 30;

        int sum = num1 + num2 + num3;
        int average = sum / 3;

        System.out.println(sum);
        System.out.println(average);
    }
}

<OperationEx2.java>

package operator;

public class OperationEx2 {
    public static void main(String[] args) {
        double val1 = 1.5;
        double val2 = 2.5;
        double val3 = 3.5;

        double sum = val1 + val2 + val3;
        double average = sum / 3;

        System.out.println(sum);
        System.out.println(average);
    }
}

<Operation3.java>

package operator;

public class OperationEx3 {
    public static void main(String[] args) {
        int score=80;
        boolean result = score >= 80 && score <= 100;
        System.out.println(result);
    }
}

정리

자주 사용하는 연산자

  • 산술 연산자: + , - , * , / , % (나머지)

  • 증가 및 감소 연산자: ++ , --

  • 비교 연산자: == , != , > , < , >= , <=

  • 논리 연산자: && (AND), || (OR), ! (NOT)

  • 대입 연산자: = , += , -= , *= , /= , %=

  • 비트 연산자: & , | , ^ , ~ , << , >> , >>> (자주사용은 안함)

profile
개발감자
post-custom-banner

0개의 댓글