자바는 연산 시 같은 형끼리만 연산이 가능하다
다른 자료형과 연산하면, 범위가 큰 자료형으로 자동변환하여 연산한다
+
-
*
/
%
public void print() {
System.out.println(1+1); //2
System.out.println(1.0+1.0); //2.0
System.out.println('1'+'1'); //11(x)
// '1'에 해당하는 숫자인 49+49로 연산되어 결과는 98
System.out.println("1"+"1"); //11(11이 아닌 1과 1이 붙은 문자열)
System.out.println(1-1); //0
System.out.println(1.0-1.0); //0.0
System.out.println('1'-'1'); // 0
//System.out.println("1"-"1");
// 문자열은 숫자 연산이 아니므로 +이외의 연산은 불가능
}
문자열은 우선순위가 높아 연산 시 모두 문자열로 변경된다
public void printstr() {
System.out.println(1+1.1); //2.1
// => 1.0+1.1=2.1 넓은범위로
System.out.println(1+'1'); //50
// => 1+ 49 = 50 문자를 정수로
System.out.println(1.1+'1'); //50.1
// => 1.1+ 49 => 1.1+ 49.0 = 50.1 문자를 정수로, 정수를 실수로
//문자열은 우선순위가 높아 다른 자료형이 모두 문자열로 변경
System.out.println(1+"1"); //"1"+"1" = "11"
System.out.println(1.0+"1"); //"1.0"+"1" = "1.01"
System.out.println('1'+"1"); //"1"+"1" = "11"
System.out.println(10+20+"Hello"); //30+"hello 출력
System.out.println(10+(20+"Hello")); //10+"20Hello" > 1020Hello 출력
}
+=
-=
*=
/=
%=
오른쪽 연산 후 왼쪽 변수에 대입
연산순서
후위연산 (변수++) : 인접연산을 먼저 수행한 후 자기 자신을 증/감
전위연산 (++변수) : 자기자신을 증/감한 후 인접연산
++
--
int a = 10;
int b = 10;
int c;
c = (a++) + (++b) + a;
System.out.println(c);
// (10) + (11) + 10? 11? < 인접연산이 끝났기 때문에 11
// c = 32 출력
두 개의 관계를 따지는 연산자 = 비교연산자
조건을 만족하면 true, 만족하지 못하면 false를 반환 > boolean형 결과값
<
>
==
!=
<=
>=
&&
: a와 b가 둘다 true일 때, true||
: a나 b 둘중 하나가 true일 때, true!
: a가 true면 false, a가 false면 true&
and: 둘다 1일 때 1|
or : 둘 중 하나가 1이면 1^
XOR : 둘이 다르면 1 같으면 0<<
왼쪽 쉬프트 연산 : 전체적으로 한칸씩 왼쪽으로 옮겨짐 (2배 커짐)>>
오른쪽 쉬프트 연산 : 오른쪽으로 옮겨짐 (반감)public void test() {
Scanner sc = new Scanner(System.in);
System.out.print("나이를 입력하세요. : ");
int age = sc.nextInt();
String msg = age>19? "성인입니다.": "미성년자입니다";
System.out.println(msg);
}