Basic Java | 산술연산자, 오버플로우

효돌dev.·2021년 12월 28일
0

초급 Java

목록 보기
1/5
post-thumbnail

산술 연산자

  • 사칙연산자 : +, -, *, /, %(나머지)
  • 복합연산자 : +=, -=,*=, /=, %=
  • 증감연산자 : ++, --
int result = 10+20-30*40/50%60;

나머지 연산

result = 10/3;	//몫
result = 10%3;	//나머지

복합연산자

result = result + 3;
result += 3;
result = result + 10;
result += 10;
result = result%5;
result %= 5;
result=result-2*3
result -= 2*3;

증감연산자

증가연산자(++) : 변수의 값을 1 증가시킨다.
감소연산자(--) : 변수의 값을 1 감소시킨다.

int i = 0;
++i;	//전위형 : 변수의 값을 읽어오기 전에 1 증가된다.
i++;	//후위형 : 변수의 값을 읽어온 후에 1 증가된다.
--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 출력

피연산자의 타입이 서로 같아야만 연산이 가능하다.

int _int = 10;
double _double = 3.14;
double result2 = _int + _double; 
//표현범위가 더 큰 타입으로 형변환된다.
//double이 표현범위가 더 크기때문에 형변환이 생략되었음
int result3 = _int + (int)_double;

byte _byte = 5;
short _short = 10;
_int = _byte + _short;
//int보다 작은 타입은 int로 형변환된다

char _char = 'a';
char _char2 = 'b';
_int = _char + _char2;
//4byte를 가진 int 타입으로 연산을 해준다
System.out.println(_int);	//195 출력

오버플로우, 언더플로우

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

byte b =127;

b++;
System.out.println(b)	
//-128 출력. 큰값을 벗어났을 때 > 표현할 수 있는 가장 작은 값

b--;
System.out.println(b)	
//127 출력. 작은값을 벗어났을때 > 표현할 수 있는 가장 큰 값

다음을 한줄씩 계산해서 최종 결과값을 출력해주세요.

/*
1. 123456 + 654321
2. 1번의 결과값 * 123456
3. 2번의 결과값 / 123456
4. 3번의 결과값 - 654321
5. 4번의 결과값 % 123456
*/ 

long res = 123456 + 654321;
res = res*123456;	//res *= 123456
res /= 123456;
res -= 654321;
res %= 123456;
System.out.println(res);	//0 출력

3개의 int타입 변수를 선언 및 초기화 후 합계와 평균을 구해주세요.

int int1 = 34;
int int2 = 38;
int int3 = 59;
int sum = int1+int2+int3;
double avg = sum/3.0;
System.out.println(sum);	
System.out.println(avg);

반올림

//avg = Math.round(avg);
//소수점 첫째자리에서 (무조건) 반올림해준다. 정수 long타입으로 반환

avg = Math.round(avg*10)/10.0;	
//소수점 둘째자리에서 반올림해준다

랜덤

//Math.random() : 0.0 ~ 1.0 미만
int random = (int)(Math.random()*100)+1
// 1~100까지의 랜덤숫자
profile
뭐든 다 하고싶음

0개의 댓글

관련 채용 정보