자바 프로그램은 main() 메소드의 시작 중괄호 "{" 부터,
끝 중괄호 "}" 까지 위에서부터 아래로 실행하는 흐름을 가지고 있다.
이러한 동작 과정에서의 흐름을 개발자가 원하는 방향으로 바꿀 수 있게 해주는 것이 제어문이다.
제어문은 조건식의 연산 결과에 따라 블록({ }) 내부의 실행 여부가 결정된다.
블록이 실행되고 제어문 처음으로 돌아오느냐, 제어문 블록을 빠져 나와 정상 흐름으로
돌아오느냐는 어떤 제어문을 사용하냐에 따라 달라진다.
또한 제어문 블록 내부에 또 다른 제어문을 사용 가능하며,
그로 인해 개발자가 원하는 매우 복잡한 단계의 흐름 제어도 가능해진다.
제어문은 크게 "조건문"과 "반복문" 으로 나뉜다.
우리는 앞으로 조건문&반복문의 모든 제어문을 공부해볼 것이다.
제어문 공부의 첫 번째는 조건문의 "if 문" 이다.
if 문
if 문은 조건식의 결과에 따라 블록 내의 실행 여부가 결정된다.
아래 그림은 if 문의 실행 흐름을 직관적으로 보여준다.
if문을 활용한 다양한 방식의 조건문이 있는데
통칭하여 if 조건문이라고 한다 스크롤을 내리며 하나씩 알아가보자.
🔘 if
조건식에는 true또는 false 값을 산출할 수 있는 연산식이나, boolean 타입의 변수가 올 수 있다.
조건식의 결과에 따라 블록 내부의 코드를 실행할지, 건너뛸지를 결정한다.
위의 코드를 보면 조건식의 결과가 true일 경우에만 블록 ({ })을 실행시킨다.
조건식이 false일 경우 동작하지 않는다.
🔘 if-else
또한 if문 조건식에는 else 블록을 끝에 달아 줄 수 있는데,
else는 제시한 모든 if의 조건식 결과 값이 false일 결우 최종적으로 else 블록 내부의 코드를 실행하게 된다.
(모든 조건식이 false면 등장해 주겠다는 소리)
그리고 한 if문 안에 else절을 여러번 정의해 줄 수는 없다.
결과적으로 실행시킬 코드 흐름이 두 개 뿐이라면 위처럼 if 와 else만으로 구성하면 되겠지만
만약 실행시킬 흐름이 여러 갈래라면 그때는 어떻게 해야 할까?
🔘 else-if
답은 조건식이 여러 개인 if 문을 활용하면 된다.
else if를 활용하면 if문 내에서 조건식을 여러 개 구성할 수 있다.
첫 번째 조건식 이후의 조건식을 명시할 때는 똑같이 if가 아니라 else if (n번 째 조건식)을 달아주고,
최종적으로 그 모든 조건식이 false일때 실행하는 블록인 else로 마무리하면 된다.
(필요에 따라 else절은 생략이 가능하다.)
그런데 만약 여러 else if의 조건식 결과가 true이면 어떻게 될까?
위의 코드와 같이 if문은 다중으로 else if가 있더라도
가장 첫 번째로 true 조건식이 나온 블록만을 실행하고 if문을 빠져나온다.
만약에 if문 조건식의 true 조건을 다중으로 구성하고 싶다면 위와 같이 코드를 구성하지 말고
아래 코드처럼 조건식 자체에서 &&(논리합) 연산자를 사용하여 구성하는 것이 옳다.
else if문의 수는 제한이 없어 무수히 많은 조건식을 만들어 낼 순 있지만
너무 많은 조건식의 남발은 권장하지 않는다.
다른 조건식이나 로직을 활용하여 필요한 만큼만의 조건식 구성이
코드의 길이를 줄일 수 있고, 프로그램의 구동 측면에서 효율적이다.
🔘 중첩 if 문
if문의 블록 내부에는 또 다른 if문을 사용할 수 있다.
이것을 "중첩 if 문"이라고 부른다.
또한 중첩의 단계에는 제한이 없다.
중첩된 if문 안에 계단식으로 또 if문을 중첩시킬 수 있다.
아래의 코드 예시를 보면 첫 번째 조건(양수인가 아닌가)를 검사하고,
그 후 중첩 if 문을 활용하여 홀수인지 짝수인지를 구분해냈다.
중첩은 꼭 if, else if 내부가 아니더라도
else 내에서도 가능하다.
조건문과 반복문 부분은 코딩이 나름 재밌다고 느끼게 되는 첫 번째 구간이기도 하다.
대부분의 자바 공부 방향이 자바 기초 이론 -> 자료형 -> 연산자 등등..
이론 중심의 어렵고 지루한 기초 공부들을 거쳐 온 후, 조건문&반복문 파트에 입장하게 될 텐데
실제 로직을 구현하는데 있어 필수적인 조건문을 처음 접하게 되면
이제야 흥미와 재미가 더 샘솟는 것 같다.(저만 그런가요)
아무튼, 오늘 배운 if문 이외에도 앞으로 다룰 조건문과 반복문들은
본격적으로 프로그램을 구현하며 자주 다루게 될 필수 도구와 같은 것들이기에
꼭 꼼꼼히 공부하여 제어문 사용에 능수능란한 개발자로 진화해나가자!
'JAVA' 카테고리의 다른 글
조건문 (switch 문) (0) | 2023.09.22 |
---|---|
삼항 연산자 (0) | 2023.09.19 |
연산자(part 2) (0) | 2023.09.11 |
산술 연산식에서의 형변환 (0) | 2023.09.06 |
연산자(part 1) (0) | 2023.09.05 |