이런 경우엔 이렇게 하고 싶어 or 저런 경우엔 저렇게 하고싶어. 라는 상황을 코드로 짜는 것.
int check = 100;
int num1 = 150;
if( num1 > check) {
System.out.println("100보다 큰 수 입니다.");
}
프린트하면,
100보다 큰 수 입니다.
그런데 여기서,
if ( 50 > 100) {
System.out.println("100보다 큰 수 입니다.")
}
하면 아무값도 출력되지 않는다.
왜냐하면 논리형에 맞게 true값이 안 나오면, if문은 true가 아니기 때문에 애초에 이 System~ 부분을 실행하지 않는다. 따라서 이 이후에 아무 코드가 없으므로 아무것도 출력하지 않는다.
int check = 100;
int num1 = 51;
if( num1 > check) {
System.out.println("100보다 큰 수 입니다.");
} else if ( num1 > 50) {
System.out.println("50보다 큰 수 입니다. 100보다 작거나 같습니다.");
프린트하면
50보다 큰 수 입니다. 100보다 작거나 같습니다.
만약 num1을 50으로 바꾼다면 또다시 아무것도 출력되지 않는다.
char score = 'A';
switch (score) {
case 'A': //A인 case에 대해서는 난 ...을 할거야.
System.out.println("A등급 축하합니다.");
break; //뒤에있는 case문을 확인하지 않고 이 switch블록을 탈출하겠다.
case 'B':
System.out.println("B등급 입니다.");
break;
case 'C':
System.out.println("C등급 입니다.");
break;
dafault: //default 뒤에는 아무런 조건 안 붙음
System.out.println("C보다 아래 등급입니다.");
}
score 이 A니까 A등급 축하합니다. 가 출력된다.
여기서 break 가 없다면 앞에서 A를 체크해서 A등급을 축하합니다 가 나오고 case B까지 넘어가서 확인하지않고 B등급 입니다 도 출력이된다.
score = 'B'로 바꿔주면
case A에 해당이 안되므로 case B 로 넘어가 B등급 입니다.가 출력된다
int a = 5;
String result = ( a < 10 ) ? "10보다 작습니다." : "10보다 큽니다.";
System.out.println(result);
프린트하면,
10보다 작습니다
논리 조건에 대해 ?가 붙으면 true일 때 수행할것, false일 때 수행할것을 적어주면,
? 를 기준으로, ( 연산 )이 true이면 왼쪽 : 오른쪽 중 왼쪽을 실행하고, 왼쪽이 false이면 오른쪽을 실행해서 출력한다.
실제로 a(5)가 10보다 작느냐는 중요하지않다.
int a = 11;
String result = ( a < 10 ) ? "10보다 작습니다." : "10보다 큽니다.";
System.out.println(result);
프린트하면,
10보다 큽니다.