JAVA

[JAVA]2. 연산자의 종류

CodeJaram 2023. 5. 29. 23:57

[JAVA]연산자의 종류

 

[연산자]

 

1. 연산결과의 자료형으로 구분하기

 

   1) 숫자(정수/실수): 산술(+, - * / %)

 

  int a= 3+4;

 //정수형 변수 a를 생성하고 변수 a에 3+4 연산결과를 대입해라.

 

  2) 논리값(T/F): 비교, 논리 →논리값에 따라 결과를 다르게 출력하는 조건문

 

  • 비교연산자
boolean a = 3==4 
//3과 4는 같냐? 
//결과값: false

boolean b = 3 !=4;
//3과 4는 같지 않냐?
//결과값: true

 

  • 논리연산자: 비교를 2개 이상 해야 할 때

 

       -AND 연산자(&&) : 그리고

          ex)비가 오고/월급이 들어오면 =>술을 마신다.

 

         *논리적 모순 주의!

a== 3 && a==5; 
//a가 3이면서 5일 수 없음
a== 3 || a==5;
//a가 3이거나 5일 수 있음

 

        -OR 연산자(||):  또는

            ex)비가 오거나/월급이 들어오면 =>술을 마신다.

 

 

 

   3) 결과값 없음: 대입, 증감

 

       결과값이 없고, 변수에 저장된 값을 변경한다.

 

  • 대입연산자

 

          ①복합대입연산자: 변수a의 값이 변한다.(누적연산)

int a=3;

a+=4; //복합대입연산자

System.out.println(a)
//a=7

 

 

           ②산술연산자: 변수a의 값이 변하지 않는다.

int a=3

System.out.println(a+4) //산술연산

System.out.println(a)
//a=3

 

  • 증감연산자(단항연산자): a++만 입력해도 실행된다.

 

int a= 10;

 

a++;(0) //결과값이 없기 때문에 출력하지 않고 단독으로 사용해도 오류가 나지

 

않는다.

 

a+4(x)//산술연산자는 결과값이 있기 때문에 대입하거나 출력해야 한다.

 

System.out.println(a)

 

 

[예제]

int a =10

 

int b=a++

 

System.out.println(a)

 

> int a=10;, a++ =>a=11;

 

System.out.println(b)

 

>int b= a++ 사용(출력/연산/대입)하고 1 증가, b=10;

 

[예제]

int a=10

 

int b=10

 

System.out.println(a+1) / /11

 

System.out.println(a) //10

 

System.out.println(++a) //11

 

//변수 a의 값이 11로 변경됨

 

System.out.println(a) //11

 

int c= a++ + ++b

 

//a에 10을 대입하고 a를 11로 변경함

 

//b를 증가시키고 사용함

 

System.out.println(a)

 

//a의 값이 11로 변경됨

 

System.out.println(b)

 

//b=11

 

System.out.println(c)

 

//10+11=21

 

 

1. 대입연산자(=): 연산의 결과를 변수에 저장한다.

  • 대입연산자는 산술연산자보다 늦게 처리된다(산술된 후 값이  변수에 대입된다.).
  • 기존의 a의 값은 새로 대입했을 때 갱신된다. 예)a=3,  a=a+4  => a=7

2. 복합대입연산자(+=, -=, *=, /=, %=)

a+=b  => a=a+b와 같은 의미

a-=b  => a=a-b와 같은 의미

 

참)== 비교연산자(같다)

 

예)num -=2 →num= num-2 27

 

더보기

풀이)

num-=2+3*4 

num-=num-(2+3*4) 

29-(14)=15

 

3 . 증감연산자(단항연산자): 변수에 저장된 값을 1 증가 혹은 1 감소

  • ++ 증가 연산자:

  ++변수(더한 후 변수 출력)

  변수++(변수 출력 후 더하기)

 

  예)int i = 2일때,

  • println(++i)= i=i+1, i=2+1 =3
  • println(i++)  i=2, 2++=2   
  • 다시 재호출하지 않으면(println(i)) 증가되지 않고 대입된 값 출력됨
  • println(i++) i= 3출력
  • println(i)  i=3, 3++ =4

 

  •  - - 감소 연산자:

   - -변수(뺀 후 변수 출력)

  변수- -(출력한 후 빼기)

 

  • a= a+1
  • a+=1
  • a++

[예제 3-1]

더보기

풀이)

++i > i=i+1, i=3+1, i=4

i++ > 4++

i  > 4 +1 =5

 

[예제 3-2]

더보기

풀이)

i=5 > 5-1=4 

j=5 > 4– = 4

더보기

풀이)

hap= (++j)+ ( k++) + ( ++L)

hap= (0+1)+ (0++) + (0+1) =2

(2, 1, 1, 1) *k=0++를 출력하므로 k=1

 

 

4. 비교연산자: 부등호 연산, 결과를 논리연산자(boolean)로 출력(TRUE, FALSE)

 

  • a<b  a<=b: 크다, 크거나 같다.  
  • a>b a>=b: 작다, 작거나 같다.
  • a==b a!=b: 같다, 같지 않다
  • 비교연산자는 기본타입만 비교할 수 있다.
  • 기본타입의 종류: boolean, char, byte, short, int, long, float, double

*String은 기본타입이 아님



5. 논리연산자

  • NOT  !    !(피연산자): NOT 연산자는 == 연산자와 반대 의미

     예)!TRUE= FALSE  a=3, b=5, !(a<b) = false

 

  • AND &&  *&&(피연산자): 피연산자가 모두 TRUE 일 때 TRUE
  • OR ||      ||(피연산자): 피연산자 하나가 TRUE일 때 TRUE

 

*피연산자는 boolean(참/거짓)이어야 함

 

더보기

풀이)

!(3>10)  =!(false)=true

더보기

AND true/true=true

AND false/true=false

OR true/false=true

OR false/false=false

 

6. 삼항연산자: 간단한 제어처리

조건문의 형태는  반드시 boolean이어야 한다. 

즉, 조건문은 비교연산자, 논리연산자여야 함

 

? 실행문 1은 TRUE일 때 실행

: 실행문 2는 FALSE일 때 실행



[예제1]

더보기

 

Scanner scan = new scanner(System.in);

 

System.out.print(“첫 번째 정수 입력: “);

int a = scan.nextInt();

System.out.print(“두 번째 정수 입력: “ );

int b = scan.nextInt();

 

System.out.print(“두 수의 차: “ );

System.out.print( a>b ? ( a-b) : (b-a));

 

심화. Math.abs(num1-num2) :절대값 변환

 

[예제2]

더보기

Scanner scan = new Scanner(System.in);



System.out.print( “농구공의 개수를 입력하세요: “);

int ball = scan.nextInt;

 

System.out.print(“필요한 상자의 수: “ + ( ball/5 !=0 ? ball/5+1 : ball/5);

 

심화. 박스에 담을 농구공의 개수를 변수로 지정. 수가 바뀌어도 코드 변경없이 실행됨

int box =5

 

 

'JAVA' 카테고리의 다른 글

[JAVA]6. 중첩 for문  (0) 2023.06.05
[JAVA]5. 반복문(FOR문)  (0) 2023.06.01
[JAVA]4. 반복문(while문)  (0) 2023.05.31
[JAVA]3. 조건문  (0) 2023.05.30
[JAVA]1.입출력  (0) 2023.05.28