※이 글은 신용권 님의 혼자 공부하는 자바를 공부하며 참고한 글 입니다.
조건문
에는 if문, swich문이 있다.
if문은 조건식의 결과가 true, flase이냐에 따라 실행되고
switch문은 변수의 값에 따라 실행된다.
if문
조건식에는 true 또는 false 즉 blooean 값을 산출할 수 있는 연산식이나, blooean 타입 변수 자체가 올 수 있다.
조건식이 true이면 블록을 실행하고, flase이면 블록을 실행하지 않는다.
int a = 3;
int b = 4;
if (a > b) {
System.out.println("조건문의 결과가 ture이면 실행.")
}
System.out.println("조건문과 상관없이 실행.")
//출력: 조건문과 상관없이 실행.
위와 같이 조건식이 true가 될 때 실핼해야 할 문장이 하나밖에 없다면 아래와 같이 중괄호를 생략해서 입력할 수도 있다.
int a = 3;
int b = 4;
if (a > b)
System.out.println("조건문의 결과가 ture이면 실행.")
System.out.println("중괄호가 없는 if문은 바로 아래 1줄만 if문 블록으로 포함된다. 따라서 이 코드는 if문과 아무런 관계가 없다.")
//출력: 중괄호가 없는 if문은 바로 아래 1줄만 if문 블록으로 포함된다. 따라서 이 코드는 if문과 아무런 관계가 없다.
(하지만 괄호 {} 블록은 더 좋은 가독성을 위해 생략하지 않는 것을 추천한다.)
if-else문
if-else문은 항상 if문과 같이 사용된다.
만약 if문이 false라서 실행이 되지 않았다면 무조건적으로 실행되는 코드를 입력해 놓을 수 있다.
int a = 3;
int b = 4;
if (a > b) {
System.out.println("조건문의 결과가 ture이면 실행.")
}else{
System.out.println("조건문의 결과가 flase이면 실행.")
}
//출력: 조건문의 결과가 false이면 실행.
따라서 조건식의 결과에 따라 이 2개의 블록 중 어느 한 블록의 내용만은 무조건 실행하고 전체 if문을 벗어나게 된다.
if-else if-else문
if문은 조건의 수에 제한이 없다.
처음 if문의 조건식이 false일 경우 다른 조건을 확일할 수 있게도 가능한데, 그 역할을 해주는 것이 else if문이다.
else if문의 수는 제한이 없으며, 여러 개의 조건식 중 true가 되는 블록만 실행하고 전체 if문을 벗어난다.
int a = 3;
int b = 4;
if (a > b) {
System.out.println("a가 b보다 큽니다.");
}else if (a == b) {
System.out.println("a와 b는 같습니다.");
}else if(a < b) {
System.out.println("a가 b보다 작습니다.");
}else {
System.out.println("위에서 true가 무조건 나오므로 이 코드는 실행될 수 없습니다.")
}
//출력: a가 b보다 작습니다.
- 첫 번째 if문의 조건 (a > b): a가 b보다 크나? 라는 조건식에 대하여 flase가 나오므로 다음 else if문으로 넘어간다.
- 두 번째 else if문의 조건 (a==b): a와 b가 같나? 라는 조건식에 대하여 마찬자리고 flase가 나오므로 다음 else if문으로 넘어간다.
- 세 번째 else if문의 조건 (a < b): a가 b보다 작나? 라는 조건식에 대해 true값이 출력되므로 해당 블록 안의 코드가 실행된다.
switch문
switch문은 변수가 어떤 값을 갖느냐에 따라 실행문이 선택된다.
if문은 경우의 수가 많아질수록 else-if를 반복적으로 추가해야 하는 반면 switch문은 변수의 값에 따라 실행문이 결정되기 때문에 상황에 맞다면 switch문을 사용하는 것이 if문보다 코드가 간결해진다.
int a = 2;
switch(a) {
case 1:
System.out.println("int a는 1입니다.");
break;
case 2:
System.out.println("int a는 2입니다.");
break;
default:
break;
}
switch문은 괄호 안의 변수 값과 동일한 값을 갖는 case로 가서 실행문을 실행한다.
변수 값과 동일한 값을 갖는 case가 없으면 default로 가서 실행문을 실행한다.(if문의 else와 바슷한 역할.)
case 끝마다 break가 있는 이유는 다음 case를 실행하지 않고 switch문을 빠져나가기 위함이다.
break가 없다면 다음 case의 조건을 확인하지 않고 무조건적으로 실행하게 된다.
//example code
int a = 2;
switch(a) {
case 1:
System.out.println("int a는 1입니다.");
case 2:
System.out.println("int a는 2입니다.");
case 3:
System.out.println("int a는 3입니다.");
case 4:
System.out.println("int a는 4입니다.");
default:
System.out.println("int a는 1, 2, 3, 4는 아닙니다.");
}
/*
출력:
int a는 2입니다.
int a는 3입니다.
int a는 4입니다.
int a는 1,2,3,4는 아닙니다.
*/
출력값을 보면 int a는 3, 4는 아닌데 결과값이 true가 나온 case 2 아래있기 때문에 전부 실행되는 것을 확인할 수 있다.
(당연히 위에 break가 하나도 없다면 default안의 코드도 실행된다.)
읽어주셔서 감사합니다. ⧹╲⎝⧹༼◕ ͜ﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞﱞo.◕ ༽⧸⎠╱⧸
'📖혼자공부하는자바' 카테고리의 다른 글
Hanghae Solution [타입 변환] (0) | 2022.11.18 |
---|---|
Chapter 04-2 Math.random() (0) | 2022.11.13 |
Chapter 03-1 연산자 (0) | 2022.11.12 |
Chapter 02-4 변수와 시스템 입출력 (0) | 2022.11.10 |
Chapter 02-3 타입 변환 (0) | 2022.11.08 |