[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 |