티스토리 뷰

IT/Java

if문(자바 조건문)

오예봉봉 2020. 4. 22. 18:14

 if문(조건문)과 실행 흐름 제어

자바 프로그램의 일반적인 실행 흐름은 다음과 같습니다.
main 함수의 시작 중괄호 { 에서  종료 중괄호 } 까지의 범위 안에서 위로부터 아래로 실행 되는 흐름을 갖습니다.
이러한 기본적인 실행 흐름을 개발자가 의도하는 대로 변경을 할 수 있게 하는 것이 흐름 제어입니다.
실행 흐름을 제어 하는 것을 제어 문이라 합니다.
제어 문은 조건과 그에 따른 실행 문장으로 구성 되어 있습니다.



제어 문의 종류

제어 문의 종류는 두 가지가 있습니다. 그것은 조건문과 반복문 입니다.
 if 문과 switch 문이 제어 문 입니다. 
반복문에는 for 문 , while 문 , do~while 문이 있습니다.
제어 문장이 실행 되면 제어 문을 탈출하거나 다시 제어 문으로 복귀할 지는 사용하는 제어 문장에 달려 있습니다. 즉 , 조건 제어 문장이라면 제어 블록을 빠져 나옵니다. 그러나 반복 제어 문장이라면 다시 제어 문장으로 회귀하여 반복합니다. 
제어 문은 중첩 사용도 가능합니다. 예컨대 , if 문 안에 for 문 , while 문을 위치 시킬 수 있습니다.
개발자는 제어 문을 이용하여 프로그램 실행의 다양한 흐름을 가능하게 할 수 있습니다.

if문

if문은 조건 식의 참,거짓에 따라 실행 문장의 실행 여부가 결정 됩니다.
if문의 조건 식으로는 true , false 값을 산출하는 연산이나 boolean 타입 변수가 위치 할 수 있습니다.
if 문의 일반적인 형식은 다음과 같습니다.

if (조건식)
{
   실행 문 ;
}

실행 문장은 반드기 1개 이어야 하는 것은 아닙니다. 여러 개가 와도 상관 없습니다.
단 , 중괄호와 관련된 주의 사항이 있습니다. 실행 문장이 1개라면 중괄호를 생략할 수 있습니다.
그러나 2 개 이상이라면 중괄호를 반드시 사용하여 실행 문장들을 묶어 주어야 합니다. 
그렇지 않으면 에러가 발생할 수 있습니다. 파란색 링크를 참조하면 예제와 설명을 불 수 있습니다.
아래 예제를 봅시다.

1.public class Example {
2.
3. public static void main(String[ ] args) {
4. int score = 95;
5.
6. if(score>=90) {
7. System.out.println("점수가 90점 이상 입니다.");
8. System.out.println("성적은 A 입니다.");
9. }
10.
11. if(score< 90) 
12. System.out.println("점수가 90점 미만 입니다.");
13. System.out.println("성적은 B 입니다.");
14. }
15.}

위 예제의 실행 결과는 다음과 같습니다.

점수가 90점 이상입니다.
성적은 A 입니다.
성적은 B 입니다.

4행의 변수 score 값이 95 이므로 6 행의 조건 score >= 90 을 만족 시킵니다.
따라서 7행 , 8행의 실행 문장들이 실행 되어 "점수가 90점 이상입니다." 와 "성적은 A 입니다."가 출력 됩니다. 
score 값이 95 입니다. 그래서 , 11행의 조건 score < 90 을 충족하지 못 하므로 12행과 13행의 실행 문장은 출력 되어서는 안됩니다. 그런데 , 왜 13행의 실행 문장 "성적은 B 입니다."가 출력 되었을까?
그 이유는 앞에서 설명한 대로 실행 문장이 2개 이상임에도 불구하고 중괄호로 묶어 주지 않았기 때문입니다.
그래서 13행을 if문의 일부인 실행문으로 보지 않고 독립된 문장으로 간주하는 에러가 발생한 것입니다. 실행문 중괄호 묶기는 주의 해야 할 사항입니다.



'IT > Java' 카테고리의 다른 글

중첩 if 문  (0) 2020.04.25
if~else문  (0) 2020.04.23
삼항 연산자(조건 연산자)  (0) 2020.04.21
대입 연산자  (0) 2020.04.20
비트 연산자  (0) 2020.04.20