2.다항연산자
1)산술연산자 :
2)비교연산자 : >, <, =, >=, <=, ==, !=
3)논리연산자 : and(&&), or(\\) ||
4)복합대입연산자 : +=, -=, *=, /=, %=
5)삼항연산자 : 조건식 ? 식1 : 식2;
1)산술연산자
기호 : + - * / %
% : 모듈러라고 부름. 몫을 뺀 ‘나머지’ 연산
연산시, 곱하기 나누기 모듈러 먼저 계산 후 사칙연산
public void method1() {
int num1 = 10;
int num2 = 3;
System.out.println("num1 + num2 = " + (num1 + num2));
System.out.println("num1 - num2 = " + (num1 - num2));
System.out.println("num1 * num2 = " + (num1 * num2)); // 나누기(/)는 나눗셈에 대한 몫 계산
System.out.println("num1 / num2 = " + (num1 / num2));
// System.out.println("num1 / num2 = " + (num1 / num0)); error 0을 나눌 수 없으므로 에러
System.out.println("num1 % num2 = " + (num1 % num2)); // %(모듈러)는 나눗셈에서 발생하는 나머지 계산
double add = a + b; // 45.0
double sub = a - b; // 25.0
double mul = a * b; // 350.0
double div = a / b; // 3.5 // 변수를 int로 바꾸면 3.0나옴
double mod = a % b; // 5.0
}
2)비교연산자
기호 : >, <, >=, <=, ==, !=
<=, >=에서 =가 뒤에와야함. 에러발생
짝수 & 홀수 만들기
2로 나누어서 0이면 짝수 2로 나누어서 1이면 홀수
짝수 판별 구분식
- b % 2 == 0
- b % 2 != 1
홀수 판별 구분식
1)b % 2 == 1
2)b % 2 != 0
3) !(b % 2 == 0)
int a = 10;
int b = 25;
boolean result1 = (a == b); // false
boolean result2 = (a <= b); // true
boolean result3 = (a > b); // false
System.out.println("b가 짝수인가? " + (b % 2 == 0));
System.out.println("b가 짝수인가? " + (b % 2 != 1));
System.out.println("b가 홀수인가? " + (b % 2 == 1));
System.out.println("b가 홀수인가? " + (b % 2 != 0));
System.out.println("b가 홀수인가? " + !(b % 2 == 0)); // ()안이 true/false 결과이기에 결과 역전 !으로 홀수판별
3)논리연산자
기호 : && ||
논리값 비교
비교 연산 후의 결과 값은 항상 논리값(boolean, true/false) 값임
조건문 연결하는 중요 역할
- and연산자( && ) :~고, 이며, ~동시에ex) 이름이 박신이고 키가 160cm이며 성별은 여자고 신발사이즈 230mm인 사람을 찾아라
- 모든 연산이 true여야 true값 반환
- or 연산자 ( || ) : ~이거나, 또는
- 논리 값 중 하나라도 true여야 true값 반환
Scanner sc = new Scanner(System.in);
System.out.print("정수 하나 입력 : ");
int num = sc.nextInt();
System.out.println(num + " 숫자가 1~100사이 숫자인가? "
+ (num >= 1 && num <= 100));
System.out.println("계속 하겠다고 하셨습니까? " + (yn == 'Y' || yn == 'y'));
4)복합대입연산자
기호 : +=, -=, *=, /=, %=
성능면에서 일반 대입연산자 사용한 것보다 유리
int a = 1;
a = a + 3; // 1+3 = 4 // a += 3; 복합대입연산자
a = a - 3; // 4-3 = 1 // a -= 3;
a = a * 3; // 1*3 = 3 // a *= 3;
a = a / 3; // a /= 3;
a = a % 3; // a %= 3;
*증감 연산자(++,- -)는 1이 고정이지만 복합대입연산자는 제한x
int a = 10;
a = a + 4;
a += 4;
System.out.println(a);
int b = 8;
b = b - 3;
b -= 3;
System.out.println(b);
int c =15;
c = c * 2;
c *= 2;
System.out.println(c);
int d = 42;
d = d / 7;
d /= 7;
System.out.println(d);
int e = 24;
e = e % 4;
e %= 4;
System.out.println(e);
5)삼항연산자
// 조건식 ? 식1 : 식2;
ex) a > b ? a++ : b--;
조건식 결과값 : boolean true/false
결과값이 true라면 수행되는 식 : 식1
결과값이 false라면 수행되는 식 : 식2
삼항연산자 중첩
조건식1 ? 식1 : (조건식2 ? 식2 : 식3);
조건식1이 true면 조건식1이 수행됨
조건식1이 false면 조건식2가 수행되고 거기서 또 true/false\
int a = 3;
int b = 2;
a > b ? a++ : b--;
// a>b가 true면 a++ 수행 or 변수로 들어감
// a>b가 false면 b-- 수행 or 변수로 들어감
int result1 = a > b ? a++ : b--;
// a>b가 true라면, a++이 result1변수로 대입
int result1 = a++;
int a = 3;
int b = 2;
a < b ? a++ : (b == 0 ? a-- : b++); // b++ 실행
// 조건식1 false -->조건식2 수행. b != 0이므로 false 실행. b++실행
'JAVA > 개념정리' 카테고리의 다른 글
[Java] 제어문(control flow statement) : 반복문 - for, while, do while (0) | 2022.07.30 |
---|---|
[Java] 제어문(control flow statement) : 조건문 - if, switch (0) | 2022.07.29 |
[Java] 연산자(Operator) - 1.단항연산자 (0) | 2022.07.28 |
[Java] 스캐너(Scanner) (0) | 2022.07.27 |
[Java] 상수(Constant) & 형변환(Casting) (0) | 2022.07.27 |