+
, -
, *
, /
, %
=
, +=
, -=
, *=
, /=
, %=
==
, !=
, >
, >=
, <
, <=
&&
, ||
, !
++
, --
? :
단항연산자
int i = 10; System.out.println(i++); // 10 → i를 먼저 출력하고 i가 증가 Sysyem.out.println(i); // 11
int i = 10; System.out.println(++i); // 11 → i를 증가시킨 후 출력 System.out.println(i); // 11
메모장 연습코드
public class Operator{
public static void main(String [] args) {
System.out.println(1+2); //3
System.out.println(6/2); //3 컴파일러는 6과 2 모두 int로 이해한다
System.out.println(6/5); //1
System.out.println(6/5.0); //1.2가 출력이 된다. 컴파일러가 6은 int, 5.0이 double이기 때문에 산술연산시 실수가 나온다.
System.out.println((float)6/5); //1.2
System.out.println(1/0); //정수를 0으로는 나누기 안됨. 컴파일은 가능하나 ArithmeticException이 난다.
System.out.println("THE END");
//ArithmeticException 이 나을까, 컴파일 에러가 나을까... 컴파일 에러 나는게 낫다. 에러가 날지 안날지 신중하게 개발하는게 좋다.
}
}
public class Operator{
public static void main(String [] args) {
System.out.println(1+2); //3
System.out.println(6/2); //3 컴파일러는 6과 2 모두 int로 이해한다
System.out.println(6/5); //1
System.out.println(6/5.0); //1.2가 출력이 된다. 컴파일러가 6은 int, 5.0이 double이기 때문에 산술연산시 실수가 나온다.
System.out.println((float)6/5); //1.2
//System.out.println(1/0); //정수를 0으로는 나누기 안됨. 컴파일은 가능하나 ArithmeticException이 난다.
System.out.println(6%5);
System.out.println("대입연산자");
int i;
i = 1+2; // 1과 2를 더해서 변수 i에 대입했습니다.
System.out.println(i);
i += 4; // 기존 i 값에 4를 더해서 변수에 대입한다. i = i + 4
System.out.println(i); //7
short s1, s2, s4;
s1 = 10;
s2 = 20;
//s3 = s1+s2; // error: incompatible types, +를 만나면 s1이 int타입으로 바뀌고, 자동으로 s2도 int 타입으로 바뀐다.
// short는 2 byte, int는 4byte라서 자동형변환이 안된다.
// 방법1. s1+s2;
// 방법2. int s3; 인트로 해놓고
int s3 = s1+s2;
s4 = (short)(s1+s2);
System.out.println(s4);
System.out.println("비교연산자");
System.out.println(1==2);
i = 17;
System.out.println(i%2 == 1); //연산자 우선순위. 우선순위가 가장 낮은건 == 연산자. 산술연산 > 비교연산
//i = i%2 == 0; error: incompatible types
System.out.println(i);
System.out.println("THE END");
//ArithmeticException 이 나을까, 컴파일 에러가 나을까... 컴파일 에러 나는게 낫다. 에러가 날지 안날지 신중하게 개발하는게 좋다.
}
}
단항 연산자 잘 참고하고 갑니다~