10 + x / 3
연산자 : 연산을 수행 하는 기호 -> +, /
피연산자 : 연산자의 연산 수행 대상 -> 10, x, 3
연산자의 종류에는 산술, 비교, 논리, 대입, 기타 연산자가 있다.
연산자의 내용은 수학시간에 배운 내용과 동일한데 표현방법이 다른것 같다.
e.g. and -> &&, or -> ||
public class Operator1_1 {
public static void main(String[] args) {
int x = 10;
int y = 20;
System.out.print("-x + 3 = ");
System.out.println(-x + 3);
System.out.print("x + 3 * y = ");
System.out.println(x + 3 * y);
System.out.println("x + 3 > y - 2 = ");
System.out.println(x + 3 > y - 2);
System.out.println("x + 3 < y - 2 = ");
System.out.println(x + 3 < y - 2);
System.out.println("x > 3 && y < 2 = ");
System.out.println(x > 3 && y < 2);
int result = x + y * 3;
System.out.println("result = " + result);
}
}
증가 연산자(++) : 피연산자의 값을 1증가 시킵니다.
감소 연산자(--) : 피연산자의 값을 1 감소 시킵니다.
- 전위형 : 값이 참조되기 전에 증가/감소 e.g. k = ++j;, k = --j;
- 후위형 : 값이 참조된 후에 증가 감소 e.g. k = j++;, k = j--;
public class Operator2_1 {
public static void main(String[] args) {
int k = 0, j = 3;
// 후위 형
k = j++;
System.out.println("k = j++;, k = " + k);
System.out.println("k = j++;, j + " + j);
// 다르게 표현
// k = j;
// j++;
// System.out.println("k = j++;, k = " + k);
// System.out.println("k = j++;, j + " + j);
// 값 초기화
k = 0;
j = 3;
// 전위 형
k = ++j;
System.out.println("k = ++j;, k = " + k);
System.out.println("k = ++j;, j = " + j);
// 다르게 표현 가능
// k = j;
// j++;
// System.out.println("k = ++j;, k = " + k);
// System.out.println("k = ++j;, j = " + j);
}
}
형변환이란?
- 변수 또는 상수의 타입을 다른 타입으로 변환
public class Operator3_1 {
public static void main(String[] args) {
int i = 65, num = 10;
char ch = 'A';
float f = 1.6f;
System.out.println("(char)i = " + (char)i); //(char)i = A
System.out.println("(int)ch = " + (int)ch); //(int)ch = 65
System.out.println(("(int)f = " + (int)f)); // (int)f = 1
System.out.println("(float)num = " + (float)num); // (float)num - 10.0
}
}
덧셈(+) 뺄셈(-) 곰셈(*) 나눗셈(/)
사칙연산은 흔히 알고 있는 그대로이다. 단 소숫점 까지 표현할려면 float로 표현해야 된다.
public class Operator4_1 {
public static void main(String[] args) {
int a = 10, b = 4;
// 덧셈
System.out.print("a + b = ");
System.out.println(a + b); // a + b = 14
// 뺄셈
System.out.print("a - b = ");
System.out.println(a - b); // a - b = 6
// 곱셈
System.out.print("a * b = ");
System.out.println(a * b); // a * b = 40
// 나눗셈
// 소수점 이하는 버려진다.
System.out.print("a / b = ");
System.out.println(a / b); // a / b = 2
// 10 / 4.0f -> 10.0f / 4.0f -> 2.5
System.out.print("a / (float)b = ");
System.out.println(a / (float)b); // a / (float)b = 2.5
}
}
- round() : 실수를 소수점 첫 째자리에서 반올림한 정수를 반환.
- cell() : 올림값을 double 형으로 반환.
- floor() : 내림값을 double 형으로 반환.
- abs() : int, doule 기본형 모두 사용 가능하며 절대값을 얻음.
== : 두 연산자가 같으면 참.
!= : 두 연산자가 다르면 참.
< : 왼쪽 피연산자가 오른쪽보다 작으면 참.
<= 왼쪽 피연산자가 오른쪽보다 작거나 같으면 참.
= 왼쪽 피연산자가 오른쪽보다 크거나 같으면 참.
문자열의 비교할때는 == 대신 equals()를 사용.
&& : 모두 참이면 참으로 반환(AND)
|| : 하나라도 참이면 참으로 반환(OR)
! : 참이면 거짓으로 거짓이면 참으로 반환(NOT)
삼항 연산자 : 조건식 ? 반환값1 : 반환값2
- 조건식의 결과에 따라 연산결과를 달리할 수 있다.
public class Operator8_1 {
public static void main(String[] args) {
int num1 = 5, num2 = 7;
int result;
result = num1 - num2 > 0 ? num1 : num2;
System.out.println("두 정수 중 더큰 수는 " + result + "입니다."); // 두 정수 중 더큰 수는 7입니다.
}
}
조건식에서 참이면 반환값1이 출력되고 거짓이면 반환값2가 출력 되는것 같다.
= : 왼쪽 피연산자에 오른쪽 피연산자를 대입.
+= : 왼쪽 피연산자에 오른쪽 피연산자를 더한 후, 그 결과값을 왼쪽에 대입.
-= : 왼쪽 피연산자에 오른쪽 피연산자를 뺀 후, 그 결과값을 왼쪽에 대입.
*= : 왼쪽 피연산자에 오른쪽 연산자를 곱한 후, 그 결과값을 왼쪽에 대입.
/= : 왼쪽 피연산자에 오른쪽 연산자를 나눈 후, 그 결과값을 왼쪽에 대입.
%= : 왼쪽 피연산자에 오른쪽 연산자로 나눈 후, 그 나머지를 왼쪽에 대입.
&= : 왼쪽 피연산자를 오른쪽 피연산자와 비트 AND 연산 후, 그 결과값을 왼쪽의 피연산자에 대입.
!= : 왼쪽 피연산자를 오른쪽 피연산자와 비트 OR 연산 후, 그 결과값을 왼쪽의 피연산자에 대입.
^= : 왼쪽 피연산자를 오른쪽 피연산자와 비트 XOR 연산 후, 그 결과값을 왼쪽의 피연산자에 대입.
<<= : 왼쪽 피연산자를 오른쪽의 피연산자만큼 왼쪽 시프트 한 후, 그 결과값을 왼쪽 피연사자에 대입.
(>>=) : 왼쪽 피연자를 오른쪽 피연산자 만큼 부호를 유지하며 오른쪽 시프트 한 후, 그 결과값을 왼쪽 피연산자에 대입.
(>>>=) : 왼쪽 피연산자를 오른쪽 피연산자만큼 부호에 상관없이 오른쪽 시프트 한 후, 그 결과값을 왼쪽 피연산자에 대입.
오늘은 연산자에 대해서 공부를 하였다. 대부분의 연산자는 일상생활에서 사용 하던 내용 그대로라서 이해 하는데 어려움은 없었지만 컴퓨터에 표현 할때는 기존에 표현 했던 방법과 달라서 적응하는데에는 시간이 더 필요할 것 같다.