Back-End/Java

[Java] 연산자 - 사칙, 비트, 조건, 누적, 삼항 / 퀴즈 만들어보기

nanee_ 2021. 6. 15. 01:25
728x90
반응형
SMALL

연산자

: 기능이 있는 특수문자

 

 

사칙 연산

public class Arithmetic {
  pulbic static void main(String[] args) {
    int a, b;
    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)); // 나머지연산
  }
}

13

7

30

3.3333333

1

 

 

비트 연산

& AND 둘 다 1일 때 1, 아니면 0
| OR 둘 중 하나라도 1일 때 1, 아니면 0
^ XOR 두 비트 숫자가 다를 때 1, 아니면 0
~ NOT 0(+) → 1(-), 1 →0 으로 변환
ex) ~0 = -1, ~a = -a-1, ~10 = -11
<<  LEFT SHIFT   - 좌로 비트 이동 (값이 커질 수 도 있다.)
* 비트가 넘어가면 버려지고, 빈자리는 0으로 채워진다.
>> RIGHT SHIFT - 우로 비트 이동 (값이 무조건 작아진다.)
* 비트가 넘어가면 버려지고, 빈자리는 0으로 채워진다.

 

public class OperatorBit {
  pulbic static void main(String[] args) {
    int a = 3;
    int b = 6;

    Sysout.out.println(a & b);  // AND
    Sysout.out.println(a | b);  // OR
    Sysout.out.println(a ^ b);  // XOR
    Sysout.out.println(~a);	    // NOT
    Sysout.out.println(a << b); // LEFT SHIFT
    Sysout.out.println(a >> b); // RIGHT SHIFT
  }
}

2

7

5

-4

192

0

 

 

조건연산자(비교연산자)

: 조건식에서 쓰이는 연산자

*(조건식 : 결과가 true 또는 false 단 2개만 나오는 식)

== 같다
!= 같지 않다
>
<
초과
미만
>=
<=
이상
이하
&& (AND) 둘 다 참이여야 참
|| (OR) 둘 중 하나라도 참이면 참
! (NOT) 참이면 거짓, 거짓이면 참

 

public class OperTest {
  public static void main(String[] args) {
    System.out.println(10 == 20); // false
    System.out.println(10 == 10 && 20 > 30); // false
    System.out.println(10 == 10 || 20 > 30); // true
    System.out.println(10 > 30); // false
    System.out.println(!(10 > 30)); // true
  }
}

false

false

true

false

true

 

 

누적연산자

+=, -=, *=, /=, ++, --

public class Oper {
  public static void main(String[] args) {
    int money = 0; 
    int data = 10;

    // 누적연산자 +=, -=
    money += 5000000; 
    System.out.println(money);

    //data += 1;
    System.out.println(data++); // data 출력 후 1증가
    System.out.println(++data); // 1증가 후 data 출력

    //data -= 1
    System.out.println(data--); // data 출력 후 1감소
    System.out.println(--data); // 1감소 후 data 출력
  }
}

500000

10

12

12

10

 * 연산 우선순위에 따라서 계산된다.

 

 

삼항연산자

조건식 ? true : false;

 

- 이중 삼항연산자

조건식 ? true : 조건식 ? true : false;

 

 

- 이중 삼항 연산자를 이용한 퀴즈 만들어보기

 

import java.util.Scanner;
public class Quiz {
  public static void main(String[] args) {
    String q = "Q. 엔시티 멤버가 아닌 사람은?\n"
    + "1. 김도영\n"
    + "2. 백현\n"
    + "3. 나재민\n"
    + "4. 이제노\n";
    Scanner sc = new Scanner(System.in);
    int choice = 0;
    int answer = 2;
    String result = "";

    System.out.println(q);
    choice = sc.nextInt();

    // 이중 삼항 연산자             true                            false(ture) false(false)
    result = choice == answer ? "정답입니다." : choice != answer ? "오답입니다" : "?";
    System.out.println(result);	
  }
}

 

 

 

728x90
반응형
LIST