728x90
※ JAVA 산술연산자
- 수학적 연산에 사용되며, 자바에서는 이들을 이용하여 수치 계산
※ 기본 산술 연산자
+
|
덧셈 연산자
|
-
|
뺄셈 연산자
|
*
|
곱셈 연산자
|
/
|
나누기 연산자
|
%
|
나누기 결과 나머지 계산 연산자
|
※ 증가/감소 산술연살자
++변수
|
실행 전 변수에 1을 더함
|
변수++
|
실행 후 변수에 1을 더함
|
--변수
|
실행 전 변수에 1을 빼기
|
변수--
|
실행 후 변수에 1을 빼기
|
ex)
int a=5, b=7;
System.out.printIn("결과1=" + (++a+3)); //a=6
System.out.printIn("결과2=" + (--b)); //b=6
System.out.printIn("결과3=" + (a+b--)); //a=6, b=6, 다음줄부터 b=5
System.out.printIn("결과4=" + b); //b=5
결과는 아래와 같음)
결과1=9
결과2=6
결과3=12
결과4=5
※ 할당 산술 연산자
=
|
현재 값을 좌측 변수에 할당
|
|
+=
|
좌측변수와 특정값을 덧셈 수행하여 다시 좌측변수에 할당
|
ex) a=a+5 과 a+=5 는 같음
|
-=
|
좌측변수에서 특정 값 뺄셈 수행한 결과를 좌측변수에 할당
|
ex) a=a-5 과 a-=5 는 같음
|
*=
|
좌측변수와 특정값 곱셈 결과를 다시 좌측변수에 할당
|
|
/=
|
특정 값으로 나눈 몫을 좌측변수에 할당
|
|
%=
|
특정 값으로 나눈 나머지를 좌측변수에 할당
|
|
※ 실수의 정확한 연산을 위해 BigDecimal class 이용하기
- 10진수의 숫자는 자바실행 시 2진수로 변경 → 결과 진법변환의 영향으로 계산결과의 차이가 발생
- 이때 BigDecimal 클래스 이용
- BigDecimal 클래스 : java.math 패키지에 포함
※ 주요메소드
add
|
덧셈
|
subtract
|
뺄셈
|
multiply
|
곱셈
|
divide
|
나눗셈
|
remainder
|
나머지
|
ex)
package pkg;
import java.math.BigDecimal;
public class sample {
public static void main(String[] args)
{
BigDecimal big_calc1=new BigDecimal("0.7");
BigDecimal big_calc2=new BigDecimal("0.6");
big_calc1=big_calc1.add(big_calc2);
System.out.printIn("결과=" + big_calc1);
}
}
결과는 아래와 같음)
결과=1.3
※ BigDecimal에서 나누기를 할때 소수점이 딱떨어지지 않으면 오류가 나기 때문에 RoundingMode 클래스도 추가해야함
ex)
big_calc1=big_calc1.divide(big_calc2,2,RoundingMode.DOWN);
//big_calc2로 big_calc1을 나누는데 소수 첫째자리까지 보여주고 나머지는 버려라
※ 자바의 관계 연산자
- 관계(비교)연산자 : 두 값을 비교 판단하는 연산자
※ 비교연산자 종류
>
|
~보다 크다
|
<
|
~보다 작다
|
>=
|
~보다 크거나 같다
|
<=
|
~보다 작거나 같다
|
==
|
~와 같다
|
!=
|
~와 같지않다
|
ex)
int a=4,b=5;
boolean r; //boolean은 논리형이란 뜻
r=(++a==b);
System.out.println("결과="+r);
결과는 아래와 같다)
결과=true
비교연산자보다 산술연산자가 먼저 작동하고 비교연사자에서 참조변수(객체)를 넣으면 변수에 들어간 값이 아닌 참조변수의 주소를 인식해서 판단함 (참조변수를 비교 판단하려면 비교연산자가 아닌 .equals 같은 메서드를 사용해야함)
※ 자바의 논리연산자
- 논리연사자 : 2개 이상의 비교식을 하나의 식으로 결합하여 결과값을 true, false로 반환
※ 논리연산자 종류
!
|
not을 뜻함. 참 값이면 거짓, 거짓이면 참값으로 변환
|
&&
|
and를 뜻함. 여러 조건식이 모두 참이어야만 결과도 참이 됨
|
||
|
or을 뜻함. 여러 조건식 중 어느 하나만 참이여도 결과가 참이 됨
|
ex)
int a=0,b,c;
boolean d;
a+=10; //a값 10됨
b=9
d=!(0==(b%3)) //b값 9를 3으로 나눈 나머지는 0이기때문에 0과 같아서 true, 그것의 반대니까 결국 false
System.out.println("결과="+d);
System.out.println("결과2="+(++b==a);
결과는 아래와 같음)
결과=false
결과2=true
※ 조건연산자
- 형식 → 조건식? 조건이 참일때 실행할 문장 : 조건이 거짓일때 실행할 문장
ex)
int age=67;
String gn;
gn=age>=65? "할인대상" : "정상운임대상"; //65보다 age값이 같거나 크면 gn에 할인대상을 출력하고 그렇지 않으면 정상운임대상을 출력
System.out.println(gn);
결과는 아래와 같음)
할인대상
반응형
'공부 > java' 카테고리의 다른 글
java 반복문 : while문, do ~ while문 (0) | 2023.01.10 |
---|---|
java 반복문 : for문, 확장 for문 (0) | 2023.01.10 |
java 조건제어 if문, switch문 (0) | 2023.01.10 |
java 프로그램 기본 구조와 변수 (0) | 2023.01.10 |
java 프로그래밍 개요 (0) | 2023.01.10 |