연산 : 주어진 식을 계산하여 결과를 얻어내는 과정
피연산자 : 연산자의 작업 대상
public class Operator_01 {
public static void main(String[] args) {
int su1 = 13, su2 = 4;
//덧셈연산
System.out.println("덧셈 결과 >>> "+(su1+su2));
System.out.println(); // 빈 줄 하나가 생김
//뺄셈연산
System.out.println("뺄셈 결과 >>> "+(su1-su2));
System.out.println();
//곱셈연산
System.out.println("곱셈 결과 >>> "+(su1*su2));
System.out.println();
//나눗셈연산
System.out.println("나눗셈 결과(몫) >>> "+(su1/su2));
System.out.println();
//나머지연산 ( 짝수 홀수 배수 판별할 때)
System.out.println("나머지 결과 >>> "+(su1%su2));
System.out.println();
/*
* 나머지(%) 연산자
* - 나머지를 구하는 연산자
* - 홀수, 짝수를 판별할 때 많이 사용
* - 배수 판별 시에도 사용
*/
}
}
1. JOptionPane.showInputDialog
import javax.swing.JOptionPane;
public class Operator_02 {
public static void main(String[] args) {
//키보드로 데이터를 입력받는 방법(첫 번째)
int num1 =
Integer.parseInt(JOptionPane.showInputDialog("첫 번째 숫자 입력하세요"));
int num2 =
Integer.parseInt(JOptionPane.showInputDialog("두 번째 숫자 입력하세요"));
// 덧셈연산
System.out.println("덧셈연산 결과 >>> "+(num1+num2));
System.out.println();
// 뺄셈연산
System.out.println("뺄셈연산 결과 >>> "+(num1-num2));
System.out.println();
// 곱셈연산
System.out.println("곱셈연산 결과 >>> "+(num1*num2));
System.out.println();
// 나눗셈연산
System.out.println("나눗셈연산 결과 >>> "+(num1/num2));
System.out.println();
// 나머지연산
System.out.println("나머지연산 결과 >>> "+(num1%num2));
System.out.println();
}
}
2. args[ ]
public class Operator_03 {
public static void main(String[] args) {
//키보드로 데이터를 입력받는 방법(두 번째)
int num1 = Integer.parseInt(args[0]);
int num2 = Integer.parseInt(args[1]);
// 덧셈연산
System.out.println("덧셈연산 결과 >>> "+(num1+num2));
System.out.println();
// 뺄셈연산
System.out.println("뺄셈연산 결과 >>> "+(num1-num2));
System.out.println();
// 곱셈연산
System.out.println("곱셈연산 결과 >>> "+(num1*num2));
System.out.println();
// 나눗셈연산
System.out.println("나눗셈연산 결과 >>> "+(num1/num2));
System.out.println();
// 나머지연산
System.out.println("나머지연산 결과 >>> "+(num1%num2));
System.out.println();
}
}


3. Scanner sc = new Scanner(System.in);
import java.util.Scanner;
public class Operator_04 {
public static void main(String[] args) {
// 1. 키보드로 데이터를 입력받는 방법(세번째)
// System.in : 표준 입력장치(키보드)
Scanner sc = new Scanner(System.in);
System.out.print("첫 번째 숫자 입력 : ");
int num1 = sc.nextInt();
System.out.print("두 번째 숫자 입력 : ");
int num2 = sc.nextInt();
// 덧셈연산
System.out.println("덧셈연산 결과 >>> "+(num1+num2));
System.out.println();
// 뺄셈연산
System.out.println("뺄셈연산 결과 >>> "+(num1-num2));
System.out.println();
// 곱셈연산
System.out.println("곱셈연산 결과 >>> "+(num1*num2));
System.out.println();
// 나눗셈연산
System.out.println("나눗셈연산 결과 >>> "+(num1/num2));
System.out.println();
// 나머지연산
System.out.println("나머지연산 결과 >>> "+(num1%num2));
System.out.println();
sc.close(); // Scanner 닫아줌
}
}
크거나 같다 : >= 크다 : > 작거나 같다 : <= 작다 : < 같다 : == 같지 않다 : =!
public class Operator_05 {
public static void main(String[] args) {
int num1 = 10, num2 = 5;
System.out.println("(num1 >= num2) 결과 >>> " + (num1 >= num2));
System.out.println();
System.out.println("(num1 > num2) 결과 >>> " + (num1 > num2));
System.out.println();
System.out.println("(num1 <= num2) 결과 >>> " + (num1 <= num2));
System.out.println();
System.out.println("(num1 < num2) 결과 >>> " + (num1 < num2));
System.out.println();
System.out.println("(num1 == num2) 결과 >>> " + (num1 == num2));
System.out.println();
System.out.println("(num1 != num2) 결과 >>> " + (num1 != num2));
System.out.println();
}
}
논리곱(&&) : 주어진 조건이 모두 참인 경우에만 결과가 true 가 됨
논리합(||) : 주어진 조건 중에 어느 하나라도 참이면 결과는 true 가 됨
부정(!) : true -> false, false -> true 가 됨
관계연산자의 결과값을 가지고 논리연산이 수행됨
public class Operator_06 {
public static void main(String[] args) {
int su1 = 10, su2 = 7;
// 논리곱인 경우 ==> true && true => true
boolean test = (su1 >= su2) && (su2 >= 5); //true
System.out.println("test 결과 >>> " + test);
System.out.println();
// 논리곱인 경우 ==> true && false => false
test = (su1 >= su2) && (su2 <= 5);
System.out.println("test 결과 >>> " + test); // false
System.out.println();
// 논리합인 경우 ==> false || true => true
test = (su1 <= su2) || (su2 >= 5);
System.out.println("test 결과 >>> " + test); // true
System.out.println();
}
}
단항연산자(++ , --)
삼항연산자
형식) (조건) ? 수식1 : 수식2;
==> 수식1 : 조건이 참이 경우 실행 문장
==> 수식2 : 조건이 거짓인 경우 실행 문장
간단하게 조건문을 대신하여 사용할 수있는 연산자
public class Operator_07 {
public static void main(String[] args) {
// 단항연산자(++, --)
int su1 = 10, su2 = 10;
System.out.println("su1++ >>> "+ su1++); // 10 -- su1 값을 먼저 출력 후 +1 계산
System.out.println("++su2 >>> "+ ++su2); // 11 -- su2 값에 +1
int su3 =10, su4 = 20;
System.out.println(++su3 + su4++); // 11 + 20 = 31
System.err.println();
System.out.println((++su3 % 3)+(su3 * ++su4)); // 12 %3 = 0 (0 + 12*22) = 264
System.err.println();
int num1 = 45, num2 = 33;
String result = (num1 >= num2) ? "num1 값이 크다" : "num2 값이 크다";
// 두 결과값 비교 - 참이면 문자열 나옴
System.out.println(result);
}
}
- 배정연산자(=)
형식) 변수 = 변수 or 수식 or 값;
public class Operator_08 {
public static void main(String[] args) {
// 배정연산자
// 형식) 변수명 = 값(데이터)
int su1 = 10, su2 = 28, result =0;
// 형식) 변수명 = 변수명
su1 = su2;
// 형식) 변수명 = 수식
su1 = su2 + 27;
System.out.println("su1 >>> " + su1); // 55
System.out.println();
System.out.println("su2 >>> " + su2); // 28
System.out.println();
// 단축배정연산자
// result = result + 10;
result += 10; // 10 (변수가 같을 때 사용 가능)
result += 10; // 20
System.out.println("result >>> " + result); // 28
System.out.println();
int su = 15;
su += 5; // su = su += 5;
System.out.println("su >>> " + su); // 20
System.out.println();
su -= 5; // su = su -= 5;
System.out.println("su >>> " + su); // 15
System.out.println();
su *= 5; // su = su *= 5;
System.out.println("su >>> " + su); // 75
System.out.println();
su /= 5; // su = su /= 5;
System.out.println("su >>> " + su); // 15
System.out.println();
su %= 5; // su = su %= 5;
System.out.println("su >>> " + su); // 0
System.out.println();
// 누적 변수 - 값이 누적이 되는 변수 ==> 반복문을 사용하여 간결하게 계산할 수 있음
}
}
비트(0,1)를 이용하여 연산한는 연산자
%(and) : 두 비트의 조건이 참(1)인 경우 1을 반환
그 외에는 0을 반환
|(or) : 두 비트 중 하나만 조건이 참(1)인 경우 1을 반환
그 외에는 0을 반환
^(xor) : 두 비트 중 서로 다른 경우에만 참(1)을 반환
그 외에는 0을 반환
※ 비트 연산을 하기 위해서는 십진수를 이진수로 변환하는 과정이 필요함
public class Operator_09 {
public static void main(String[] args) {
int num1 = 10, num2 = 5, result;
// 비트연산을 하기 위해서는 우선적으로 십진수를 이진수로 변환
// num1 = 1010 , num2 = 0101
// and 연산
result = num1 & num2; // 1010 & 0101 ==> 0000
System.out.println("and result >>> " + result); // 0
System.out.println();
// or 연산
result = num1 | num2; // 1010 | 0101 ==> 1111
System.out.println("or result >>> " + result); // 15
System.out.println();
// xor 연산
result = num1 ^ num2; // 1010 ^ 0101 ==> 1111
System.out.println("xor result >>> " + result); // 15
System.out.println();
}
}
public class Operator_10 {
public static void main(String[] args) {
int num1 = 10, num2 = 5;
// 비트 이동이 있기 때문에 십진수를 이진수로 변환하는 과정이 필요함
// num1 = 1010, num2 = 0101;
// 왼쪽 쉬프트(<<)
System.out.println("왼쪽 쉬프트 >>> " + (num1 << 2)); // 40
// 왼쪽 방향으로 2비트 이동 > 두 칸 이동된 빈 칸에는 0
System.out.println();
// 오른쪽 쉬프트(>>)
System.out.println("오른쪽 쉬프트 >>> " + (num1 >> 1)); // 5
System.out.println("오른쪽 쉬프트 >>> " + (num2 >> 1)); // 2
System.out.println();
}
}