CODE/JAVA1
ArithmeticOperator
maskan
2021. 1. 27. 15:37
public class ArithmeticOperator {
public static void main(String[] args) {
/*
* 산술연산자
* - 사칙연산 : +, -, *, /, %(나머지)
* - 복합연산자 : +=, -=, *=, /=, %= 직접 연산
* - 증감연산자 : ++, -- 1 증가 또는 1감소
*/
int result = 10 + 20 - 30 * 40 / 50 % 60;
//곱하기와 나누기가 더하기 빼기보다 우선순위가 높다.
System.out.println(result);
//나머지 연산
result = 10/3;
System.out.println(result);
//3.3333...이 연산의 결과여야하지만 타입이 int>정수만 표현
result = 10%3;
System.out.println(result);
//5개의 산술연산자를 사용해 5개의 연산을 수행 후 결과를 출력해주세요.
result = 100/3;
System.out.println(result);
result = 107%5;
System.out.println(result);
result = 80*4;
System.out.println(result);
result = 40+7;
System.out.println(result);
//복합연산자
//변수에 저장되어있는 값에 연산을 수행할 때 수행할 연산자와 대입연산자를 결합해 사용할 수 있다.
result = result + 3;
System.out.println(result);
result += 3;
System.out.println(result);
result -= 5;
System.out.println(result);
result *= 2;
System.out.println(result);
//아래의 문장을 복합연잔자를 사용한 문장으로 만들어 주세요.
//result = result +10;
//result = result - 2 * 3;
//result = result %5;
result += 10;
System.out.println(result);
result -= 2 * 3;
System.out.println(result);
result %= 5;
System.out.println(result);
//실행은 ctrl+F11 디버깅용 F11
//증감 연산자
//증감연산자(++) : 변수의 값을 1 증가시킨다.
//감소연산자(--) : 변수의 값을 1 감소시킨다.
int i = 0;
++i; //전위형 : 변수의 값을 읽어오기 전에 1 증가시킨다.
i++; //후위형 : 변수의 값을 읽어온 후에 1 증가시킨다.
--i;
i--;
i = 0;
System.out.println("++i = " + ++i);
i = 0;
System.out.println("i++ = " + i++);
System.out.println(i);
//피연산자의 타입이 서로 같아야만 연산이 가능하다.
int _int = 10;
double _double = 3.14;
double result2 = _int + _double;
//표현 범위가 더 큰 타입으로 형변환된다.
//작은 범위인 _int가 자동으로 double로 변환
System.out.println(result2);
long _long = 100L;
_long = _int + _long;
// _int = _int + _long; //빨간줄=컴파일에러
_int = _int + (int)_long;
byte _byte = 5;
short _short = 10;
int result3 = _byte + _short; //int보다 작은 타입은 int로 형변환
System.out.println(result3);
char _char = 'a';
char _char2 = 'b';
_int = _char + _char2;
System.out.println(_int);
//char은 문자함수지만 int로 변환되어 숫자화된다. a=97, b=98
//오버플로우, 언더플로우
//표현범위를 벗어나는 값을 표현할 때 발생하는 현상
byte b = 127;
b++;
System.out.println(b);
b--;
System.out.println(b);
//타입을 선택할 때 연산의 범위를 고려해야한다.
//다음을 한줄씩 계산해서 최종 결과값을 출력해주세요
//1. 123456 + 654321
//2. 1번의 결과값 *123456
//3. 2번의 결과값 / 123456
//4. 3번의 결과값-654321
//5. 4번의 결과값 % 123456
long _work = 123456 + 654321;
System.out.println("1. : " + _work);
_work *= 123456;
System.out.println("2. : " + _work);
_work /= 123456;
System.out.println("3. : " + _work);
_work -= 654321;
System.out.println("4. : " + _work);
_work %= 123456;
System.out.println("5. : " + _work);
//3개의 int형 변수를 선언 및 초기화 후 합계와 평균을 구해주세요.
int a_int = 45;
int b_int = 89;
int c_int = 857;
int sum_int = a_int + b_int + c_int;
System.out.println("합계 : " + sum_int);
double avg_int = (double)sum_int / 3;
//둘 다 int 로 결과값도 int로 도출, 둘 중 하나는 더블이어야 더블 값이 나옴
//sum_int를 더블로 형변환 / 3을 3.0으로 형변환
System.out.println("평균 : " + avg_int);
//반올림 함수 Math.round(변수)는 소수점 첫째 자리에서 반올림
// avg_int = Math.round(avg_int);
// System.out.println(avg_int);
avg_int = Math.round(avg_int * 10);
//Math.round는 long 타입 함수
//avg_int = Math.round(avg_int * 10) / 10 >정수
//avg_int = Math.round(avg_int * 10) / 10.0 >실수
System.out.println(avg_int / 10);
//랜덤
int random = (int)(Math.random() * 100) + 1;
//Math.random()은 0.0~0.99999...까지의 수를 랜덤 생성
// 0~99를 +1 로 1~100까지의 랜덤한 숫자가 생성
System.out.println(random);
}
}