조건문
조건문이란 조건의 참, 거짓 여부에 따라 실행할 코드를 결정하는 것을 말한다.
조건문 - if문
if문에서는 if 다음의 조건식이 참일 때 if문 안의 코드가 실행된다.
예제를 통해 이해해 보자.
내가 사고 싶은 위시리스트 상품이 10000원, 가지고 있는 돈이 20000원인 상태라고 가정해 보았다.
if문의 조건에서 가지고 있는 돈이 사고 싶은 상품보다 크거나 같을 경우,
잔돈을 표시하고 구매 완료라는 안내 문구가 적혀있는 코드가 실행되도록 하였다.
당연히 20000원은 10000원보다 크기 때문에 조건은 참이 되고,
위 if문 안의 코드가 실행된다.
그렇다면 이 코드에서 만약 조건을 만족하지 못한다면?
if문의 조건을 만족하지 못하면 if문이 실행되지 않기 때문에 콘솔에는 아무것도 뜨지 않게 된다.
만약 if문의 조건을 만족하지 못한 경우에도 안내 문구가 뜨게 하고 싶다면 어떡해야 할까?
조건문 - if-else문
if-else문에서는 if 조건을 만족하면 if문 안의 코드,
if 조건을 만족하지 못하면 else문 안의 코드가 실행된다.
예제를 살펴보자.
위 예제에서 2000원은 10000원보다 작아서 if문 조건을 만족하지 못한다.
따라서 else 문 안의 코드가 실행된 걸 확인할 수 있다.
그렇다면 이 상황에서
부족한 금액이 상품 가격의 반 이하인 경우만 부족한 금액을 출력하고,
상품 가격의 반 이상이면 부족한 금액을 출력하고 싶지 않다는 옵션을 추가하려면 어떡해야 할까?
else 문 안에서도 if문을 추가할 수 있다.
이 경우 조건 1을 만족하지 않음과 동시에 조건 2를 만족하면 else문 안의 if문이 실행된다.
부족한 금액이 8000원인 경우는 else문 안의 if문 조건을 만족하지 못해 안내 문구만 뜨고,
부족한 금액이 4500원인 경우는 else문 안의 if문 조건을 만족해 부족한 금액까지 표시된 걸 확인할 수 있다.
그렇다면 위 코드와 똑같은 결과가 나오게 하되 다르게 표현하는 방법은 없을까?
if-else if문
if-else if문은 위와 같은 원리로 실행된다.
이때 else문은 생략할 수 있다.
if-else if문을 이용하여 같은 결과가 나오도록 해 보았다.
중첩 if문
if문 안의 조건이 하나가 아닌 여러 개라고 가정해 보자.
그러면 if(조건1 && 조건2 && 조건3...)와 같은 식으로 조건을 적어야 한다.
그런데 이렇게 적는다면 조건이 매우 길 경우 코드의 가독성이 좋지 않거니와
조건1,2,3..을 모두 만족하는 경우만 처리할 수 있다.
이러한 문제의 해결을 위해 중첩 if문을 사용할 수 있다.
조건을 &&으로 같이 명시한 위 if문과 중첩 if문의 실행 결과가 같은 걸 확인할 수 있다.
animal 변수의 값이 변경될 경우
중첩 if문은 조건을 일부만 만족하는 경우까지 같이 처리할 수 있다.