JAVA DAY5 - 연산자

어뮤즈온·2020년 11월 25일
0

초급자바

목록 보기
5/31

연산자

연산을 수행하는 기호 ex) +, -, *, / 등

  • 연산자 우선순위
    ① 기타 : 괄호(), 대괄호[]
    ② 단항 연산자 : 증감연산자
    ③ 이항연산자 : 산술 연산자 - 비교 연산자 - 논리 연산자
    ④ 삼항 연산자
    ⑤ 대입 연산자 =, op=

산술연산자

  • 사칙연산자 : +, -, *, /, %(나머지)
  • 복합연산자 : +=, -=, *=, /=, %=
  • 증감연산자 : ++, --

1) 사칙연산자

int result = 10 + 20 - 30 * 40 / 50 % 60;
System.out.println(result); //6 출력

//나머지 연산
result = 10 / 3;
System.out.println(result); //3 출력
//3.3333....이 연산의 결과여야 하지만 10,3이 int 타입이기 때문에 정수만 표현된다.
result = 10 % 3;
System.out.println(result);//1 출력

2) 복합연산자

변수에 저장되어 있는 값에 연산을 수행할 때 수행할 연산자와 대입연산자를 결합해 사용할 수 있다.

result = result + 3; // result += 3;과 같다.
result -= 5; //result = result - 5;와 같다.
result *= 2; //result = result * 2;와 같다.

예제

아래의 문장을 복합연산자를 사용한 문장으로 만들어주세요.

//result = result + 10;
result += 10;

//result = result - 2 * 3;
result -= 2 * 3;

//result = result % 5;
result %= 5;

3) 증감연산자

  • 증가연산자(++) : 변수의 값을 1 증가시킨다.
  • 감소연산자(--) : 변수의 값을 1 감소시킨다.
int i = 0;

++i; // 전위형 : 변수의 값을 읽어오기 전에 1 증가된다. i = 1
i++; // 후위형 : 변수의 값을 읽어온 후에 1 증가된다. i = 0
--i;
i--;

i = 0;
System.out.println("++i = " + ++i); // ++i = 1 출력
i = 0;
System.out.println("i++ =" + i++); // i++ = 0 출력
System.out.println(i); // 1 출력
//i를 출력하면 위 연산식 출력 후에 1 증가하여 i = 1

오버플로우, 언더플로우

표현범위를 벗어나는 값을 표현할 때 발생하는 현상

//오버플로우
byte = b 127; //byte 최대값 = 127
b++; 
System.out.println(b); // -128 출력

//언더플로우
b--; //byte 최소값 = -128
System.out.println(b); // 127 출력

** 타입을 선택할 때 연산의 범위를 고려해야한다.


예제

3개의 int형 변수를 선언 및 초기화 후 합계와 평균을 구하시오.

int _int1 = 30;
int _int2 = 24;
int _int3 = 49;
int result = _int1 + _int2 + _int3;
double avg = result / 3.0; 
//3은 int이기 때문에 결과는 int가 나오므로 3.0 double 타입을 쓴다.
System.out.println("합계 : " + result + " 평균 : " + avg);
//합계 : 103 평균 : 34.333333333333336 출력

반올림, 랜덤수 생성

//반올림
avg = Math.round(avg); //Math 메소드는 소수점 첫째자리에서만 반올림
avg = Math.round(avg * 100) / 100.0;
//소수점 이동을 위해 10단위를 곱하고, 소수점 자리 결과값을 얻기위해 double 100.0 을 나눈다.
System.out.println(avg); // 34.0 출력

//랜덤수 생성하기
int random = (int)(Math.random() * 100) + 1;
// Math.random()은 0.0 ~ 0.999999...
System.out.println(random); //1~100사이의 랜덤수
profile
Hello, world!

0개의 댓글