1. 연산자
: 연산을 수행하는 기호
- +: 덧셈
- -: 뺄셈
- *: 곱셈
- /: 나눗셈
- %: 모듈러(Modular) → 나눗셈에서 나머지를 구함
* 'a + 10'이라는 식이 있을 때, 변수 a와 상수 10은 피연산자이고, '+'가 연산자이다.
2. 연산자의 종류
(1) 종류
① 산술 연산자: 사칙 연산(+, -, *, /)과 나머지 연산(%)
//산술 연산자
// -> 이항 연산자로써 연산 방법, 우선 순위가 일반 수학 산술과 동일함.
public class plus {
public void operator() {
double d1 = 32; //32.0
double d2 = 10; //10.0
System.out.println("d1+d2= "+(d1+d2)); //42.0
System.out.println("d1-d2= "+(d1-d2)); //22.0
System.out.println("d1*d2= "+(d1*d2)); //320.0
System.out.println("d1/d2= "+(d1/d2)); //3.2
System.out.println("d1%d2= "+(d1%d2)); //2.0
}
}
② 비교 연산자: 크고 작음과 같고 다름을 비교( >, <, >=, <=, ==, != )
: 두 피연산자를 비교하는 데 사용되는 연산자, 주로 조건문과 반복문의 조건식에 사용,
연산결과는 오로지 true와 false 중 하나
a. 종류
a-1. 크고 작음을 비교
비교연산자 | 연산결과 |
> | 좌변 값이 크면, true or false |
< | 좌변 값이 작으면, true or false |
>= | 좌변 값이 크거나 같으면, true or false |
<= | 좌변 값이 작거나 같으면, true or false |
a-2. 일치하는지 비교(동등 비교)
비교연산자 | 연산결과 |
== | 두 값이 같으면, true or false |
!= | 두 값이 다르면, true or false |
public class Comparison {
public void truth() {
int x = 10;
int y = 25;
System.out.println("x < y: "+(x < y)); //x < y: true
System.out.println("x <= y: "+(x <= y)); //x <= y: true
//동등 비교
boolean b1 = x==y; //x는 y와 같다
System.out.println("b1 = "+b1); //b1 = false
boolean b2 = x != y; //x는 y와 같지 않다
System.out.println("b2 = "+b2); //b2 = true
}
}
③ 논리 연산자: AND와 OR로 조건 연결( &&, ||, !, &, |, ^, ~ )
a. 논리 연산자
: 이항 연산자, 두 개의 논리값을 연산하는 연산자
a-1. 표현법: 논리값 논리연산자 논리값 ☞ 결과값도 논리값
//AND 연산자(&&)
// -> 피연산자 양쪽 모두 true여야 최종 결과도 true가 된다.
import java.util.*; //Scanner 클래스를 사용하기 위해 추가함
public class practice {
public void method1() {
Scanner sc = new Scanner(System.in);
System.out.println("정수를 입력하시오.> ");
int x = sc.nextInt();
boolean result = (x > 0) && ((x % 2) == 0);
System.out.println("x가 양수이면서 짝수입니까?> "+result);
//결과값: 정수를 입력하시오.>
// 5
// x가 양수이면서 짝수입니까?> false
}
//OR 연산자(||)
// -> 피연산자 중 어느 한 쪽만 true이면 최종 결과도 true가 된다.
public void method2() {
Scanner sc = new Scanner(System.in);
System.out.println("성별을 입력하시오.> ");
char sex = sc.nextLine().charAt(0);
boolean result - (sex == 'F') || (sex == 'f');
System.out.println("그대는 여자입니까?>"+result);
//결과값: 성별을 입력하시오.>
// Female
// 그대는 여자입니까?> true
}
}
a-2. 논리 연산자의 연산결과
- AND 연산자(&&)
: true && true => true
true && false => false
false && false => false
false && true => false
- OR 연산자(||)
: true || true => true
true || false => true
false || false => true
false || true => true
b. 논리 부정 연산자
: 논리값(true / false)을 반대로 바꿔주는 연산자
b-1. 표현법: !논리값
public class Logic {
public void logic1() {
System.out.println("true의 부정> "+!true); //true의 부정> false
System.out.println("false의 부정> "+!false); //false의 부정> true
boolean b1 = true;
boolean b2 = !b1;
System.out.println("b1 = "+b1); //b1 = true
System.out.println("b2 = "+b2); //b2 = false
}
}
④ 대입 연산자: 오른쪽 변의 값을 왼쪽 변에 저장( = )
a. 대입 연산자
: 오른쪽 피연산자의 값을 왼쪽 피연산자에 저장하는 데 사용,
연산 진행 방향이 오른쪽에서 왼쪽이므로 'x = y = 5;'에서 'y =5'가 먼저 수행되고 'x = y'가 수행된다.
b. 복합 대입 연산자
: 다른 산술 연산자(op)와 대입 연산자가 결합한 것,
자기 자신과 해당 산술 연산 후에 그 결과를 자기 자신에게 덮어 씌움
b-1. 종류
op= | = |
i += 3; | i = i + 3; |
i -= 3; | i = i - 3; |
i *= 3; | i = i * 3; |
i /= 3; | i = i / 3; |
i %= 3; | i = i % 3; |
위 표의 왼쪽은 복합 연산자의 예이고 오른쪽은 대입 연산자의 예이며, 둘은 같은 의미를 가진다. 처음엔 복합 대입 연산자가 익숙하지 않을 수 있기 때문에 표의 오른쪽 형식을 보면서 익히면 된다.
public class Compound {
public void method1() {
int num = 12;
System.out.println("현재 num: "+num); //12
//num을 3만큼 증가
num = num + 3;
System.out.println("3을 증가시킨 num: "+num); //15
//num을 3만큼 증가(복합 대입 연산자)
num += 3;
System.out.println("3을 증가시킨 num: "+num); //18
//num을 3만큼 감소
num -= 3;
System.out.println("3만큼 감소시킨 num: "+num); //15
//num을 3배 증가
num *= 3;
System.out.println("3배 증가시킨 num: "+num); //45
//num을 2로 나눈 나머지
num %= 2;
System.out.println("num을 2로 나눈 나머지: "+num); //1
}
}
⑤ 증감 연산자
: 단항 연산자로써 한 번에 1씩 증감시키는 연산자
a. 표현법
a-1. ++: 값을 1씩 증가
--: 값을 1씩 감소
b. 연산자의 위치
b-1. 전위연산: ++i, --i
→ 1을 먼저 증감시키고 i를 처리
b-2. 후위연산: i++. i--
→ i를 먼저 처리하고 타 연산자 실행 후 1을 증감
public class minus {
//전위연산
public void plus() {
int a = 10;
int b = ++a;
//a에 1 증가 => 11, b는 1이 증가된 a의 값 11로 출력
System.out.println("a = "+a); //a = 11
System.out.println("b = "+b); //b = 11
System.out.println("a: "+ --a); //10
//a에 1 감소 => 10
}
//후위연산
public void xorr() {
int a = 10;
int b = a++;
//b가 먼저 10으로 출력되고, a는 a 값에 1 증가 => 11
System.out.println("a = "+a); //a = 11
System.out.println("b = "+b); //b = 10
}
}
3. 삼항 연산자
: 조건식의 결과값에 따라 처리하는 연산자, 결과값이 참일 경우 식1을, 거짓일 경우 식2를 처리
(1) 표현법
조건식 ? 조건이 true일 경우의 처리 : false일 경우의 처리
public class triple {
public void three() {
//짝수인지 홀수인지 판별해보기
Scanner sc = new Scanner(System.in);
System.out.println("정수를 입력하시오.> ");
int num = sc.nextInt();
System.out.println("결과는 "+((num%2 == 0) ? "짝수입니다." : "홀수입니다."));
//num에 입력한 값의 2로 나눈 후 나머지값이 0이면 짝수, 0이 아니면 홀수
}
}