본격적으로 제어문(control statement)에 대해 알아보도록 하자.
if (score >80) {
System.out.println("You passed!");
}
boolean
type이어야 한다. C나 C++의 경우 정수형들도 가능한데 Java의 경우 이는 오류를 일으킨다.if (x = 0) {System.out.println("hi.");} //error
{}
은 블럭이라고 불린다. if문에서의 역할은 C, C++이랑 같다. 조건문 밑 body가 한 줄일 경우 생략이 가능한것도 동일하다. 생략시 밑의 한 줄만 조건문의 body로 취급하는 것도 동일하다.
if-else, if-else if는 C, C++이랑 크게 다른게 없다.
int accountLevel = 1;
switch (accountLevel) {
case 3:
grantDeletePermission(); //no break, continue switch statement
case 2:
grantWritePermission();
case 1:
grantReadPermission();
break;
default:
System.out.println("Undefined level");
}
C, C++은 case에 정수(및 char
)만 넣는게 가능하지만 Java는 String
도 넣는것이 가능하다. (JDK 1.7부터 허용)
상수도 넣는게 가능하나, 변수는 불가능.
int a, b;
final int MY_CONST = 123;
final double MY_CONST2 = 123.4
switch(a) {
case '1': //ok
case MY_CONST: //ok
case "HELLO": //ok
case b: //error
case 1.2: //error
case false: //error
case MY_CONST2: //error
}
switch(...) {
case 1: case 2: case 3:
...
}