728x90
목차
1. 연산자
■ 항과 연산자
- 연산에 사용되어 지는 값을 항이라고 함
- 연산에 사용되어지는 기호를 연산자라고 함
■ 연산자 종류
- 단항 연산자
- 항이 한 개인 연산자
- ++num, num--
- 이항 연산자
- 항이 두 개인 연산자
- num1 + num2
- 삼항 연산자(조건 연산자)
- 항이 세 개인 연산자
- 프로그램에만 존재
- 조건 ? 결과 1(참) : 결과2(거짓)
- 조건식이 참이면 결과 1을 반환, 거짓이면 결과 2를 반환
- 결과 1과 결과 2는 같은 자료형이어야 가능
- 대입 연산자
- 변수에 값을 대입하는 연산자
- =을 사용
- 부호 연산자
- +(양수), -(음수)를 통해 부호를 표현함
- 산술 연산자
- +(두 항을 더함)
- -(앞에 있는 항에서 뒤에 있는 항을 뺌)
- *(두 항을 곱합)
- /(앞에 있는 항에서 뒤에 있는 항을 나누어 몫을 구함)
- %(앞에 있는 항에서 뒤에 있는 항을 나누어 나머지를 구함)
- 증감 연산자
- ++(항의 값에 1을 더함)
- --(항의 값에 1을 뺌)
- 항의 앞에 붙을 수도 있고, 뒤에 붙을 수도 있음
- 관계 연산자
- <(뒤의 항보다 앞의 항이 작으면 참)
- >(뒤의 항보다 앞의 하이 크면 참)
- <=(뒤의 항보다 앞의 항이 작거나 같으면 참)
- >=(뒤의 항보다 앞의 항이 크거나 같으면 참)
- ==(뒤의 항과 앞의 항이 같으면 참)
- !=(뒤의 항과 앞의 항이 다르면 참)
- 알고리즘 사용 시 왠만하면 <, >만 사용하는 것이 좋음
- 복합 대입 연산자
- +=(앞의 항과 뒤의 항을 합친 값을 앞의 항에 대입)
- -=(앞의 항과 뒤의 항을 뺀 값을 앞의 항에 대입)
- *=(앞의 항과 뒤의 항을 곱한 값을 앞의 항에 대입)
- /=(앞의 항과 뒤의 항을 나눈 값의 몫을 앞의 항에 대입)
- %=(앞의 항과 뒤의 항을 나눈 나머지 값을 앞의 항에 대입)
- num1 += num2와 num1 = num1 + num2랑 같음
2. 예시
■ Operation1
package j04_연산자;
public class Operation1 {
public static void main(String[] args) {
int add = 1 + 2;
int sub = 10 - 5;
int mul = 10 * 2;
// 실수형으로 나누면 소수점까지 나옴
int div = 10 / 4;
// 나머지가 0인 것은 뒤 수의 배수
int remainder = 10 % 5;
System.out.println(add);
System.out.println(sub);
System.out.println(mul);
System.out.println(div);
System.out.println(remainder);
System.out.println(remainder == 0 ? "5의 배수이다" : "5의 배수가 아니다");
}
}
■ Operation2
package j04_연산자;
public class Operation2 {
public static void main(String[] args) {
int num = 10;
num = num + 1;
System.out.println(num);
// 선증가는 1 + num으로 더해진 후 출력
System.out.println(++num);
// 후증가는 num + 1으로 num이 출력된 후 더해짐
System.out.println(num++);
System.out.println(num++);
System.out.println(num);
}
}
■ Operation3
package j04_연산자;
/*
* 논리 연산자
* AND(곱) T && T, T && F
* OR(합) T || F
* NOT(부정) !T
*/
public class Operation3 {
public static void main(String[] args) {
int num = 11;
boolean flag1 = true;
boolean flag2 = true;
boolean flag3 = num % 2 > 0;
System.out.println(flag1 && flag2);
System.out.println(flag1 && flag3);
System.out.println(!(flag2 || flag3 && flag1));
}
}
■ Operation4
package j04_연산자;
public class Operation4 {
public static void main(String[] args) {
int num = 100;
num = num + 1;
num -= 100;
num *= 10;
num %= 3;
System.out.println(num);
}
}
■ Operation5
package j04_연산자;
public class Operation5 {
public static void main(String[] args) {
int num1 = 10;
int num2 = 5;
int result = num1 > num2 ? num1 * -1 : num2 * -1;
System.out.println(result);
int num = 79;
int result2 = num / 90 == 1 ? 90
: num / 80 == 1 ? 80
: num / 70 == 1 ? 70 : 0;
System.out.println(result2);
}
}
■ Operation6
package j04_연산자;
public class Operation6 {
/*
* 시험 성적을 학점으로 계산하는 프로그램
*
* 정수자료형 score변수 선언
* 88점으로 초기화
*
* 문자자료형 grade변수 선언
*
* 조건
* score가 0점보다 작거나 100점보다 크면 x를 출력
* score가 90 ~ 100점이면 A학점
* score가 80 ~ 89점이면 B학점
* score가 70 ~ 79점이면 C학점
* score가 60 ~ 69점이면 D학점
* score가 0 ~ 59점이면 F학점
*/
public static void main(String[] args) {
int score = 88;
char grade;
char plus;
grade = score < 0 || score > 100 ? 'X'
: score > 89 ? 'A'
: score > 79 ? 'B'
: score > 69 ? 'C'
: score > 59 ? 'D' : 'F';
plus = score > 100 || score < 60 ? '\0' : score % 10 > 4 || score == 100 ? '+' : '\0';
System.out.println("점수(" + score + ") : " + grade + plus + "학점");
}
}