
우측 int형 7이 double형 7.0으로 자동 형변환 되면서 좌측 더블형 7.0과 값이 같아지기 때문이다.

모두 30 으로 출력이 될 것이다.
우측의 값을 좌측으로 값을 대입하기 때문.
나눗셈 후 나머지 값
7 % 3 = 나머지 : 1,10 % 4 = 나머지 : 2
- 대입 연산자를 응용하여 연산과 대입을 한 번에 해주는 연산자
- 코드의 반복적인 작업을 최소화하여 효율적이다.
+=,*=,/=,%=등 대입 연산자 앞에 산술 연산자를 붙여 사용한다.
- 리터럴은 데이터(값) 그 자체를 뜻한다.
- 즉, 변수에 넣는 변하지 않는 데이터를 의미하는 것.
ex1)int num1 = 5 + 7;
ex2)double num2 = 3.3 + 4.5;
- 정수는 무조건 int형으로 인식하기로 약속되어 있음
- 따라서 5와 7은 '정수형 리터럴' 이다.
- 그리고 3.3과 4.5는 '실수형 리터럴’ 이다.
System.out.println(3147483647 + 3147483648); // 에러남
정수는 무조건 int형으로 인식하기로 약속되어 있는데 int 데이터 허용 범위의 값을 넘었기때문에 데이터 허용 범위가 더 넓은 long 데이터로 선언해주면 해결 된다.
🟠에러 수정 방법🟠
System.out.println(3147483647L + 3147483648L);
- 연산을 수행할 시 프로그램이 스스로 데이터 타입을 바꾸어서 연산결과를 저장
- 기본적으로 데이터가 손실되지 않도록 변환
규칙1. 자료형의 크기가 큰 방향으로 형 변환이 일어난다.
규칙2. 자료형의 크기에 상관없이 정수 자료형보다 실수 자료형이 우선한다.
형 변환이 필요한 상황에 데이터 타입을 입력함으로써, 연산 결과의 데이터 타입을 강제로 바꾸어주는 것을 의미
double pi = 3.1415;
int wholeNumber = (int)pi;
long num1 = 3000000007L;
int num2 = (int)num1;
short num1 = 1;
short num2 = 2;
short num3 = (short)(num1 + num2);
int b = 4;
double c = a/b;
System.out.println(c);
결과 0.0
에러 이유
나눗셈의 몫이 정수값이 아닌 실수로 표현되어야하기 때문에 실수형 데이터형으로 선언해야한다. ( 정수의 데이터 표현 방식과 실수의 데이터 표현 방식 연산의 값으 다르게 나오기 때문 )
double a = 3;
double b = 4;
double c = a/b;
System.out.println(c);
double a = 3;
int b = 4;
double c = a/b;
System.out.println(c);
int a = 3;
int b = 4;
double c = (double)a/b;
System.out.println(c);
int a = 3;
int b = 4;
double c = a/(double)b;
System.out.println(c);
int a = 3;
int b = 4;
double c = (double)a/(double)b;
System.out.println(c);
화면상의 어떠한 상황 또는 상태를 표현하기 위해 약속된 문자
'\b' : 백스페이스키 기능 문자
'\t' : 탭키 기능 문자
'\\' : 백플래시 문자
'\'' : 작은 따옴표 문자
'\"' : 큰 따옴표 문자
'\n' : 개 행(줄바꿈) 문자
System.out.println('A'); // char 형으로 인식, 메모리에 올라갈 때 65 값이 들어감
System.out.println('A'+'A'); // char 형으로 65 메모리에 올리고, int형으로 자동 형변환
결과
A
130
A 문자는 유니코드로 65로 약속되어 있기에 int 값인 65로 자동 형변환되고 + 연산자 역할 때문에 덧셈 연산이 되어 130이 출력이 된다.
2 + 3 * 2 / 3 - 2
① 연산자의 우선 순위
위의 수식은 곱셈, 나눗셈을 먼저 계산해야한다.
② 결합 방향
계산은 왼쪽에 있는 곱셈 후 나눗셈 순으로 진행이 된다.

public class LogicalOp {
public static void main(String[] args) {
int num1=20;
boolean result ;
result = (num1>1)&&(num1<100);
System.out.println("1초가 100미만인가?"+result);
}
}
&&연산자 : 모든 값이 true (참) 으로 같아야 true(참)
||연산자 : 하나의 값만 true (참) 이어도 true(참)

public class LogicalOp {
public static void main(String[] args) {
int num1=33;
boolean result ;
result = ((num1 % 2) == 0) || ((num1 % 3) == 0);
System.out.println("2의 배수 또는 3의 배수?"+result);
}
}
int로 국어,영어,수학,총점을 선언 및 값 할당
double로 avg 선언후에 평균을 넣음
출력은 아래와 같음
총점 255
평균 186.3423