package operator;
public class Main01 {
public static void main(String[] args) {
int num1 = 12;
int num2 = 8;
int result1 = num1 + num2;
// -
int result2 = num1 - num2;
// *
int result3 = num1 * num2;
// /
int result4 = num1 / num2;
// %
int result5 = num1 % num2;
// 12시 45분 까지..
System.out.println("12 + 8 = " + result1);
System.out.println("12 - 8 = " + result2);
System.out.println("12 * 8 = " + result3);
System.out.println("12 / 8 = " + result4);
System.out.println("12 % 8 = " + result5);
System.out.println("___________________");
// 0으로 나누기
int num = 100;
int zero = 0;
int result6 = num / zero;
// 연산불가 -> 에러
System.out.println("100 / 0 =" + result6);
}
}
변수에 대한 연산 결과를 다시 자기 자신에게 적용하는 경우 사용
다시 자기 자신에게 대입하고자 하는 경우의 약식 표현이다.
int x = 100;
x = x + 5;
int x = 100;
x += 5;
단항 연산자는 모든 사칙 연산자에 표현 가능하다.
+=, -=, *=, /=, %=
package operator;
public class Main02 {
public static void main(String[] args) {
int source = 100;
source += 100; //source = source + 100; 200
source -= 50; //source = source - 50; 150
source *= 2; //source = source * 2; 300
source /= 100; //source = source / 100; 3
source %= 2; //source = source % 2; 1
System.out.println(source);
/* 하나하나 따로 계산이 들어가게 계산하는것이 아닌 한번에 처리하는거였다...
int source1 = source += 100; // 200
int source2 = source -= 50; //50
int source3 = source *= 2; //200
int source4 = source /= 100; //1
int source5 = source %= 2; //0
*/
// System.out.println(source1);
}
}
다른걸 떠나서 증감 연산자의 위치로 변하는 것들이 제일 신기했다.
특정 변수에 저장되어 있는 값을 1씩 증가, 감소 시킬 경우 사용
단항 연산자로 표현할 수 있는 식에서 계산 대상 값이 1인 경우, 덧셈과 뺄셈에 대해서는 다시 한번 축약할 수 있다.
덧셈의 경우
x = x + 1;
x += 1; //단항
x++; //증감연산자
++x; // 증감연산자
뺄셈의 경우
x = x - 1;
x -= 1;
x--; //증감연산자
--x; //증감연산자
x++와 ++x의 차이점
-> 증감 연산자는 그 자체가 다른 연산식의 피연산자로 사용될 수 있다.
이때, 증감연산자의 표시 위치에 따라 결과가 서로 다르게 적용된다.
x++ 경우
-> 증감 연산자가 뒤에 표시되는 경우, 현재 x의 값을 먼저 수식에 적용하고, 나중에 x에 대한 1증가처리를 한다.
int a = 100;
int x = 1;
int y = a + x++;
sout(y); // y = 101, x = 2로 변화 수식에 먼저 적용하고 나중에 증가처리를 한 결과.
--x의 경우
-> 증감 연산자가 앞에 표시된 경우, 현재 x의 값을 1 증가 시킨후 그 결과를 수식에 적용한다.
int a = 100;
int x = 1;
int y = a + ++x;
sout(y); // y = 102, x = 2
package operator;
public class Main04 {
public static void main(String[] args) {
int a1 = 100;
int x1 = 1;
int y1 = a1 + x1++;
System.out.println("y1 : " + y1);
System.out.println("x1 : " + x1);
int a2 = 100;
int x2 = 1;
int y2 = a2 + ++x2;
System.out.println("y2 : " + y2);
System.out.println("x2 : " + x2);
}
}
수학 굉장하다
두 개의 변수값 간의 관계를 비교하여 참(true)이나 거짓(false)의 결과를 반환한다.
같다 ==
다르다 != //는 부정의 의미로 사용됨
초과 >
이상 >=
미만 <
이하 <=
주어진 식이 참인지 거짓인지 판별 가능하므로, 연산 결과는 boolean 값으로 생성된다.
int x = 100;
int y = 1;
boolean r = x 비교연산자 y;
package operator;
public class Main05 {
public static void main(String[] args) {
int num1 = 123;
int num2 = 456;
// 비교연산에 대한 결과는 boolean
boolean result1 = num1 == num2;
System.out.println(result1);
// !=
boolean result2 = num1 != num2;
System.out.println(result2);
// >
boolean result3 = num1 > num2;
System.out.println(result3);
// <=
boolean result4 = num1 <= num2;
System.out.println(result4);
}
}
좌변과 우변을 논리 연산하고, 참일때는 true, 거짓일때는 false 값을 반환한다.
두개 이상의 비교 연산자의 결과나 boolean 값에 대해 추가로 "AND" 나 "OR" 연산을 수행하여 결과를 얻는다.
AND의 의미를 갖는 &&
-> "&&" 연산자 두 개의 boolean 값을 비교하여 모두 true인 경우에만 결과값이 true
OR 의 의미를 갖는 ||
-> ||연산자는 두개의 boolean값을 비교하여 둘중 하나라도 true인경우 결과값 true
package operator;
public class Main06 {
public static void main(String[] args) {
int a = 100;
int b = 200;
int x = 5;
int y = 3;
boolean result1 = a != b || a == b; // T
System.out.println(result1);
boolean result2 = a < b || x > y; // T
System.out.println(result2);
boolean result3 = a < b || x < y; // T
System.out.println(result3);
boolean result4 = a > b || x > y; // T
System.out.println(result4);
boolean result5 = a > b || x < y; // F
System.out.println(result5);
boolean result6 = a < b && x > y; // T
System.out.println(result6);
System.out.println("--------------------------");
boolean r1 = a >= b; // F
boolean r2 = x >= y; // T
boolean result7 = r1 && r2;
boolean result8 = r1 || r2;
System.out.println(result7);
System.out.println(result8);
System.out.println("-----------------------------");
boolean success = true;
boolean fail = !success;
System.out.println(fail);
}
}
알믄 좋겟지..