산술연산자 ( +, -, *, /, %, <<, >>)
비교 연산자 (>, <, >=, <=, ==, !=)
논리 연산자 (&&, ||, !)
대입 연산자 (=, ++, --)
복합대입 연산자: 피연산자 앞에 붙이냐 뒤에 붙이냐에 따라서 값이 다름
public class Arr01 {
public static void main(String[] args) {
int num = 1;
int val = 20;
int ans = val + ++num; //num에 1을 더하고 val과 더하고 ans에 넣음
System.out.println(ans); // 22출력 (20+2)
System.out.println(num); // 2출력 (1+1)
ans = val + num++; //val과 num을 더해서0 ans에 넣고 num에 1을 더함.
System.out.println(ans); // 22출력 (20+2)
System.out.println(num); // 3출력 (2+1)
}
}
기타 연산자 ((type), ?:, instance of)
int intNumber = 50 + (int) 50.5; // 50+50
double doubleNumber = (double) 70 + 10.7; // 70.0 + 10.7
int x = 2;
int y = 10;
boolean b = (x == y) ? true : false; // Q:x랑 y랑 같음?
System.out.println(b); // false A:ㄴㄴ
String s = (x != y) ? "정답" : "땡";
System.out.println(s); // 땡
int max = (x > y) ? x : y;
System.out.println(max); // 10
int min = (x < y) ? x : y;
System.out.println(min); // 2
연산자 우선순위
( 산술 > 비교 > 논리 > 대입)
boolean flag = true;
if (flag) {
System.out.println("참."); // 조건이 참이면 출력 > flag 는 true니까 참. 출력.
}
boolean flag = false;
if (flag) {
System.out.println("참."); //if 조건이 참일 때 출력
}else {
System.out.println("거짓."); //if 조건이 거짓 일 때 출력 >> flag =false > 거짓.출력
}
조건이 여러개 일 때 사용 조건 무한으로 걸 수 있음.
int number = 2;
if (number == 1) {
System.out.println("number 값은 1 입니다."); // 미출력
} else if (number == 2) {
System.out.println("number 값은 2 입니다."); // number 값은 2 입니다. 출력
} else {
System.out.println("number 값은 모르는 값입니다."); // 미출력
}
if문 안에 if문을 넣어서 복잡하게 조건을 걺.
boolean flag = false;
int number = 2;
if (flag) {
if (number == 1) {
System.out.println("flag 값은 true, number 값은 1 입니다."); // 미출력
} else if (number == 2) {
System.out.println("flag 값은 true, number 값은 2 입니다."); // 미출력
}
} else {
if (number == 1) {
System.out.println("flag 값은 false, number 값은 1 입니다."); // 미출력
} else if (number == 2) {
System.out.println("flag 값은 false, number 값은 2 입니다."); // 출력
}
}
Q:안하면 어케됨?
A: case가 안끝나서 switch가 끝날때까지 계속 실행됨
int month = 8;
String monthString = "";
switch (month) {
case 1: monthString = "1월";
break;
case 2: monthString = "2월";
break;
case 3: monthString = "3월";
break;
case 4: monthString = "4월";
break;
case 5: monthString = "5월";
break;
case 6: monthString = "6월";
break;
case 7: monthString = "7월";
break;
case 8: monthString = "8월";
break;
case 9: monthString = "9월";
break;
case 10: monthString = "10월";
break;
case 11: monthString = "11월";
break;
case 12: monthString = "12월";
break;
default: monthString = "알수 없음";
}
System.out.println(monthString); // 8월 출력
for(int i=0; i < 4; i++) { // 변수 i 값은 0 ~ 3 까지 반복
System.out.println(i + "번째 출력"); // i 변수와 문자열 합치기
}
// 출력
0번째 출력
1번째 출력
2번째 출력
3번째 출력
int[] numbers = {3,6,9,12,15};
for(int number: numbers) {
System.out.print(number + " ");
}
// 출력
3 6 9 12 15
int number = 0;
while(number < 3) {
number++;
System.out.println(number + "출력");
}
// 출력
1출력
2출력
3출력
int number = 4;
do {
System.out.println(number + "출력");
} while(number < 3); // 연산을 한번 수행 후 조건문 체크
// 출력
4출력
int number = 0;
while(number < 3) {
number++;
if (number == 2) {
break; // 2일때 반복 중단
}
System.out.println(number + "출력");
}
// 출력
1출력
for (int i = 0; i < 10; i++) {
System.out.println("i: " + i);
if (i == 2) {
break; // i 가 2일때 가장 바깥 반복문이 종료됩니다.
}
for (int j = 0; j < 10; j++) {
System.out.println("j: " + j);
if (j == 2) {
break; // j 가 2일때 가장 안쪽 반복문이 종료됩니다.
}
}
}
// 출력
i: 0 // 바깥 반복문 부터 수행 시작
j: 0 // 안쪽 반복문 1회차 수행
j: 1
j: 2 // j 가 2일때 안쪽 반복문 break;
i: 1 // 바깥 반복문은 아직 break; 호출이 안됬으므로 다음 반복수행
j: 0 // 안쪽 반복문 2회차 수행
j: 1
j: 2 // j 가 2일때 안쪽 반복문 두번째 break;
i: 2 // i 가 2일때 바깥 반복문도 break; 호출되어 종료
int number = 0;
while(number < 3) {
number++;
if (number == 2) {
continue; // 2일때 반복 패스
}
System.out.println(number + "출력");
}
// 출력
1출력
3출력