산술 연산자
1. 기본적인 연산자
산술 연산자 | 설명 | 사용 예 | |
= | 대입 | a = 3 | 정수 3을 a에 대입 |
+ | 더하기 | a = 5 + 3 | 5와 3을 더한 값을 a에 대입 |
- | 빼기 | a = 5 - 3 | 5에서 3을 뺀 값을 a에 대입 |
* | 곱하기 | a = 5 * 3 | 5와 3을 곱한 값을 a에 대입 |
/ | 나누기 | a = 5 / 3 | 5를 3으로 나눈 값을 a에 대입 |
% | 나머지 값 | a = 5 % 3 | 5를 3으로 나눈 뒤 나머지 값을 a에 대입 |
public class EX04_02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a, b = 5, c = 3; //int는 정수형, a,b에 5, c에 3을 할당
a = b + 3; //b와 c를 더하기 연산하여 a에 대입
System.out.printf("%d + %d = %d \n", b, c, a);
a = b - c; //b와 c를 빼기 연산하여 a에 대입
System.out.printf("%d - %d = %d \n", b, c, a);
a = b * c; //b와 c를 곱하기 연산하여 a에 대입
System.out.printf("%d * %d = %d \n", b, c, a);
a = b / c; //b와 c를 나누기 연산하여 a에 대입
System.out.printf("%d / %d = %f \n", b, c, (float) a);
a = b % c; //b와 c를 나누기 연산하여 나머지 값을 a에 대입
System.out.printf("%d %% %d = %f \n", b, c, (float) a);
}
}
5 + 3 = 8
5 - 3 = 2
5 * 3 = 15
5 / 3 = 1.000000
5 % 3 = 2.000000
2. 우선순위와 강제 형 변환
public class EX04_03 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 2, b = 3, c = 4; //정수형 변수 선언
int result1, mok, namugi; //정수형 변수 선언
float result2; //실수형 변수 선언
result1 = a + b - c; //더하기와 빼기 연산을 동시에 수행
System.out.printf("%d + %d - %d = %d \n", a, b, c, result1);
result1 = a + b * c; //더하기와 곱하기 연산을 동시에 수행
System.out.printf("%d + %d * %d = %d \n", a, b, c, result1);
result2 = a * b / (float) c; //정수 c를 실수로 강제 형 변환(casting)한 다음 연산
System.out.printf("%d * %d / %d = %f \n", a, b, c, result2);
mok = c / b; //몫을 구함
System.out.printf("%d / %d 의 몫은 %d \n", c, b, mok);
namugi = c % b; //나머지를 구함
System.out.printf("%d / %d 의 나머지는 %d \n", c, b, namugi);
}
} //순서 1. 괄호 2. 곱(나눗셈) 3. 덧셈,뺄셈 4. 왼->오 진행 5. = 대입연산자
2 + 3 - 4 = 1
2 + 3 * 4 = 14
2 * 3 / 4 = 1.500000
4 / 3 의 몫은 1
4 / 3 의 나머지는 1
- 7행 : 연산자 우선순위
1. result 1 = (a+b) - c; 2. result 1 = a + (b+c); |
덧셈과 뺄셈은 계산되는 순서(연산자 우선순위)가 동일하므로 어떤 것을 먼저 계산하든 결과가 동일.
괄호가 없으면 왼쪽에서 오른쪽 방향으로 계산.
- 10행
1. result 1 = (a+b)*c; -> (2+3)*4 -> 5*4 -> 20 2. result 1 = a+(b*c) -> 2+(3*4) -> 2 + 12 -> 14 |
덧셈(또는 뺄셈)과 곱셈(또는 나눗셈)이 같이 나오는 경우에는 곱셈(또는 나눗셈)을 먼저 계산한 다음 덧셈(또는 뺄셈)을 게산.
3. 데이터형의 강제 형 변환
- 형 변환을 하지 않았을 때
- 강제 형 변환을 했을 때
4. 대입 연산자와 증감 연산자
연산자 | 설명 | 사용 예 | |
+= | 대입 연산자 | a += 3 | a = a + 3과 동일 |
-= | 대입 연산자 | a -= 3 | a = a - 3과 동일 |
*= | 대입 연산자 | a *= 3 | a = a * 3과 동일 |
/= | 대입 연산자 | a /= 3 | a = a / 3과 동일 |
%= | 대입 연산자 | a %= 3 | a = a % 3과 동일 |
++ | 증가 연산자 | a++ 또는 ++a | a += 1 또는 a = a + 1과 동일 |
-- | 감소 연자 | a-- 또는 --a | a -= 1 또는 a = a - 1과 동일 |
산술 + 대입 => 복합 연산자
a++ 후치증가연산자 : a가 있고, a 값을 1 증가
++a 전치증가연산자 : a 값을 1 증가시키고, a가 있음
public class EX04_04 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 10;
a++; //a=a+1과 동일
System.out.printf("a++ ==> %d \n", a);
a--; //a=a-1과 동일
System.out.printf("a-- = %d \n", a);
a += 5; //a=a+5와 동일
System.out.printf("a += 5 ==> %d \n", a);
a -= 5; //a=a-5와 동일
System.out.printf("a -= 5 ==> %d \n", a);
a *= 5; //a=a*5와 동일
System.out.printf("a *= 5 ==> %d \n", a);
a /= 5; //a=a/5와 동일
System.out.printf("a /= 5 ==> %d \n", a);
a %= 5; //a=a%5와 동일
System.out.printf("a %%= 5 ==> %d \n", a);
}
}
a++ ==> 11
a-- = 10
a += 5 ==> 15
a -= 5 ==> 10
a *= 5 ==> 50
a /= 5 ==> 10
a %= 5 ==> 0
public class EX04_05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 10, b;
b = a++; //b=a를 수행한 다음 a를 1 증가
System.out.printf("%d \n", b);
b = ++a; //a를 1 증가시킨 다음 b=a를 수행
System.out.printf("%d \n", b);
}
}
10
12
'개발 일기 > Java Programming' 카테고리의 다른 글
논리 연산자 (0) | 2023.09.11 |
---|---|
관계 연산자 (0) | 2023.09.11 |
데이터 형식과 배열 | 비트 | 진수 | 바이트 | 진수 변환 | 정수의 연산 | 아스키코드(ASCII) | 유니코드 | 불(Boole) | boolean | String 문자열 (1) | 2023.09.09 |
변수 | 선언 | 정수형 int | 실수형 float | 실수형 double | 대입 | 대입 연산자 (0) | 2023.09.06 |
System.out.printf() 메소드의 서식 지정 | %d 정수형 서식 | %f 실수형 서식 | %s 문자열형 서식 | 서식 문자 (0) | 2023.09.03 |