산술연산자
/*
* 산술연산자
* → +, -, *: 곱, /: 나누기
* → %: 나머지
* > 홀짝, 배수
* →
*/
public class Ex01Opt {
public static void main(String[] args) {
int ia = 10, ib = 3;
System.out.println("ia : " + ia + ' ' + "ib : " + ib);
System.out.println();
System.out.println(ia + " + " + ib + " = " + (ia + ib));
System.out.println(ia + " - " + ib + " = " + (ia - ib));
System.out.println(ia + " * " + ib + " = " + (ia * ib));
System.out.println(ia + " / " + ib + " = " + (ia / ib));
System.out.println(ia + " % " + ib + " = " + (ia % ib));
}
}
복합 대입 연산자
/*
* 복합 대입 연산자
* → +=, -= 등등
* 예시) a += b → a = a + b (a 와 b를 더해서 왼쪽 a에 대입.)
*/
public class Ex02Opt {
public static void main(String[] args) {
int ic = 10;
System.out.println("ic : " + ic);
System.out.println();
ic += 5;
System.out.println("ic : " + ic);
System.out.println();
// 5 += ic; → Error
// 연산 후에 나온 결과를 왼쪽에 대입하기 때문에, 왼쪽에는 항상 변수가 있어야 함.
int id = 2;
ic *= id;
System.out.println("ic : " + ic);
}
}
비교연산자
/*
* 비교 연산자
* → >, <. >=, <=
* == : 왼쪽, 오른쪽 값이 같을 때 참(True).
* != : 왼쪽, 오른쪽 값이 같지 않을 때 참(True).
* → 조건식에 따른 결과는 True, False.
*/
public class Ex03Opt {
public static void main(String[] args) {
int ie = 10, ig = 7;
System.out.println("ie : " + ie + " - ig :" + ig);
System.out.println();
System.out.println("ie >= ig : " + (ie >= ig));
System.out.println("ie == ig : " + (ie == ig));
System.out.println("ie <= ig : " + (ie <= ig));
System.out.println("ie != ig : " + (ie != ig));
}
}
논리연산자
/*
* 논리 연산자
* → &&: and
* > 조건식_a && 조건식_b
* : 조건식_a, 조건식_b 둘 다 참이어야 참(True).
* > 조건식_a && 조건식_b && 조건식_c
* : 조건식_a, 조건식_b, 조건식_C 셋 다 참이어야 참.
*
* → ||: or
* > 조건식_a || 조건식_b
* : 조건식_a, 조건식_b 둘 중 하나만 참이어도 참(True).
*
* → !: not
* > !( 조건식_a )
* : 참이면 거짓, 거짓이면 참으로 변경.
*
*/
public class Ex04Opt {
public static void main(String[] args) {
int na = 10, nb = 7;
System.out.println("na : " + na + " " + "nb : " + nb);
System.out.println();
boolean answer;
answer = na > 9 && nb > 9;
System.out.println("na > 9 && nb > 9 : " + answer);
answer = na > 9 || nb > 9;
System.out.println("na > 9 || nb > 9 : " + answer);
answer = !(na > 9);
System.out.println("!(na > 9) : " + answer);
}
}
증감 연산자
/*
* 증감 연산자
* → 값을 1 증가 시키거나, 1 감소 시킬 때 사용.
* > ++ : 1 증가.
* -- : 1 감소.
*
* ++n → 1 증가 후 n 연산.
* n++ → n 연산 후 1 증가.
* --n → 1 감소 후 n 연산.
* n-- → n 연산 후 1 감소.
*/
public class Ex05Opt {
public static void main(String[] args) {
int data = 5;
System.out.println("data: " + data);
System.out.println();
int answer = 0;
answer = ++data;
System.out.println("data: " + data + " answer : " + answer);
answer = data++;
System.out.println("data: " + data + " answer : " + answer);
answer = --data;
System.out.println("data: " + data + " answer : " + answer);
answer = data--;
System.out.println("data: " + data + " answer : " + answer);
int a = 5;
int b = a++;
System.out.println("b : " + b);
b = ++a;
System.out.println("b : " + b);
System.out.println();
b = 5;
int z = ++b * ++b;
System.out.println("b : " + b + " z : " + z);
// compile 될 때 interpreter으로 진행되서, b가 먼저 더해지고 그 더한 값에 곱해지고, 더해지는 순서.
b = 5;
z = ++b * b++;
System.out.println("b : " + b + " z : " + z);
System.out.println();
b = 5;
// 조건식 앞 (++b > 6) false가 나오면 뒤에 조건식은 진행되지 않음.
boolean ans = (++b > 6) && (++b > 6);
System.out.println("b : " + b + " ans : " + ans);
b= 5;
ans = (++b > 5) || (++b > 5);
System.out.println("b : " + b + " ans : " + ans);
}
}
강제형변환
public class Ex06Opt {
public static void main(String[] args) {
int va = 5, vb =2;
System.out.println("va : " + va + "vb : " + vb);
// div = 2.0이 나오는 이유
// → int 와 int를 연산하기 때문에, double 공간에 int값이 담기기 때문에 int 결과값이 나옴.
double div = va / vb;
System.out.println("div : " + div);
// div = 2.5가 나오는 이유
// → int 와 double을 연산시키면 type을 자료형이 큰 쪽으로 JAVA가 내부적으로 double로 수정하여 연산값이 나옴. → 자동 형변환 long << double
// → 서로 다른 자료형이 연산처리 될 때는, 크기가 작은 자료형이 큰 쪽에 맞춰서 처리.
// int res = va /da → Error double 실수 값을 int 자료형에 담을 수 없음.
double da = 2;
div = va / da;
System.out.println("div : " + div);
// 강제 형변환 va를 double 타입으로 바뀜 → 영구적x, 계산할 때만 일시적으로 바뀜. (vb도 내부적으로 double로 바뀜.)
// → 사용하려는 데이터 왼쪽에 '(변환자료형)'을 써주면, 실행시 () 안의 자료형으로 형변환되어 실행 됨.
div = (double) va / vb;
System.out.println("div : " + div);
}
}