if문은 조건식의 결과에 따라 블록 실행 여부가 결정된다.
조건식에는 true 또는 false 값을 산출할 수 있는 연산식이나, boolean 변수가 올 수 있다.
조건식이 true이면 블록을 실행하고 false 이면 블록을 실행하지 않는다.
if문은 else 블록과 함께 사용되어 조건식의 결과에 따라 실행 블록을 선택한다.
if문의 조건식이 true이면 if문의 블록이 실행되고, 조건식이 false이면 else 블록이 실행된다.
조건식의 결과에 따라 이 두개의 블록 중 어느 한 블록의 내용만 실행하고 전체 if문을 벗어나게 된다.
조건문이 여러 개인 if문도 있다. 처음 if문의 조건식이 false일 경우 다른 조건식의 결과에 따라 실행 블록을 선택할 수 있는데, if 블록의 끝에 else if문을 붙이면 된다. else if문의 수는 제한이 없으며 여러 개의 조건식 중 true가 되는 블록만 실행하고 전체 if 문을 벗어나게 된다.
else if 블록의 마지막에는 else 블록을 추가할 수 있는데, 모든 조건식이 false일 경우 else 블록을 실행하고 if문을 벗어나게 된다.
주사위를 굴려서 나올 수 있는 6개의 수 중 하나의 수를 뽑아서 출력하는 프로그램 작성
Math.random() 메소드를 사용
이 메소드는 0.0~1.0 사이에 속하는 double 타입의 난수 하나를 리턴한다.
0.0은 범위에 포함되고 1.0은 포함되지 않는다.
비교 연산자 -> 0.0 <= Math.random() < 1.0
이 메소드에 *10을 실행하면 정수의 값을 얻을 수 있다.
(int)(Math.random)을 통하여 강제 타입 변환 실행
각 변에 1을 더하면 비로소 원하는 정수의 값을 얻게 된다.
따라서 주사위를 뽑기 위한 연산식은
int num = (int)(Math.random()*6) + 1 ;
switch문은 if문과 마찬가지로 조건 제어문이다. 하지만 switch문은 if문처럼 조건식이 true일 경우에 블록 내부의 실행문을 실행하는 것이 아니라, 변수가 어떤 값을 갖느냐에 따라 실행문이 선택된다. if문은 조건식의 결과가 true, flase 두 가지 밖에 없기 때문에 경우의 수가 많아질수록 else-if를 반복적으로 추가해야 하므로 코드가 복잡해진다. 그러나 switch 문은 변수의 값에 따라서 실행문이 결정되기 때문에 같은 기능의 if문보다 코드가 간결하다.
switch문은 괄호 안의 값과 동일한 값을 갖는 case로 가서 실행문을 실행시킨다.
만약 괄호 안의 값과 동일한 값을 갖는 case가 없으면 default로 가서 실행문을 실행시킨다.
default는 생략 가능하다.
case 끝에 break가 붙어 있는 이유는 다음 case를 실행하지 말고 switch문을 빠져나가기 위해서이다. break가 없다면 다음 case가 연달아 실행되는데, 이때에는 case 값과는 상관없이 실행된다.