프로그램에서 소스를 실행하는 순서는 처리한 결괏값에 따라 달라지기도 하고 특정 부분의 소스를 건너뛰고 실행하기도 합니다.
이렇게 프로그램에서 소스 실행 순서를 결정하는 명령문을 '제어문'이라고 합니다. 제어문은 조건에 따라 소스의 실행 순서를 바꾸거나 특정 부분을 반복실행하는 등 실행 흐름을 조절해줍니다.
1. if문과 if...else문
'if' 문과 'if...else' 문은 특정 조건에 따라 서로 다른 코드 블록을 실행할 수 있게 해주는 조건문입니다. 코드에 의사 결정 기능을 추가하는 데 사용되는 기본 제어 흐름 문입니다.
if문은 조건을 확인하고 조건이 참으로 평가되면 코드 블록을 실행하는 데 사용됩니다. 만약 조건이 거짓이면 코드 블록을 건너뛰고 프로그램은 'if'블록 다음 문으로 계속 진행됩니다.
소스를 보면서 살펴보겠습니다.
이 소스에서 num > 0 조건이 true로 평가되기 때문에 if 블록 내부의 코드가 실행됩니다. num의 값이 음수이거나 0이면 if 블록 내부의 코드를 건너뛰게 됩니다.
if...else문은 조건이 거짓으로 평가될 때 실행될 대체 코드 블록을 제공하여 'if'문을 확장합니다.
'if'문의 조건이 참이면 첫 번째 블록 내부의 코드가 실행됩니다. 그러나 조건이 거짓이면 else 블록 내부의 코드가 실행됩니다.
소스를 보면서 살펴보겠습니다.
이 소스에서 num의 값이 0보다 크면 "The number is positive." 라는 메시지가 출력됩니다.
만약 num의 값이 0이거나 음수이면 "The number is non-positive." 라는 메시지가 출력되게 됩니다.
'if...else'문을 사용하면 조건이 참인지 거짓인지에 따라 다른 경우나 결과를 처리할 수 있으므로 코드의 의사 결정 프로세스에 더 많은 유연성이 제공됩니다.
2. 조건 연산자 ?, :
만약 조건이 하나이고 true일 때와 false일 때 실행할 명령도 하나뿐이라면 if...else문 대신에 조건 연산자를 사용하는 것이 간단합니다.
조건 연산자는 기호 ?와 기호 :으로 이루어져 있습니다.
조건 연산자 ? :은 삼항 연산자라고도 부릅니다. 조건 연산자의 구문은 다음과 같습니다.
여기서 조건은 평가되는 표현식입니다.
조건이 참이면 expression1이 실행되고 그 값이 반환됩니다. 반대로 조건이 거짓이라면 expression2가 실행되고 그 값이 반환됩니다.
조건부 연산자는 'if...else'문에 대한 속기 역할을 합니다.
소스를 보면서 살펴보겠습니다.
이 소스에서는 num > 0 조건이 평가됩니다. num이 0보다 크면 "Positive" 표현식이 result에 할당됩니다. 그렇지 않고 num이 0이거나 음수이면 "Non-positive" 표현식이 result에 할당됩니다.
조건 연산자는 전체 if...else 문을 작성하지 않고 조건에 따라 값을 할당하거나 간단한 작업을 수행해야 할 때 유용할 수 있습니다. 그러나 코드 가독성을 유지하기 위해 신중하게 사용하는 것이 중요합니다. 복잡하거나 중첩된 조건은 삼항 연산자를 사용하여 표현할 때 읽기 어려워질 수 있습니다. 이러한 경우 명확성을 위해 'if...else' 문을 사용하는 것이 좋습니다.
3. switch문
프로그램을 만들다 보면 여러가지 조건과 입력값을 비교해야 하는 경우가 생깁니다. 그럴 때 if문과 else문을 사용할 수도 있지만 switch문을 사용하는 것이 더 편리합니다.
switch문은 표현식 값에 따라 다른 코드 블록을 실행하는 대체 방법을 제공하는 제어문입니다. 표현식을 평가하고 그 값을 여러 사례와 비교할 수 있습니다. 일치하는 사례가 발견되면 해당 코드 블록이 실행됩니다. 만약 일치하는 항목이 없으면 선택적 기본 사례를 실행할 수 있습니다.
예시 소스 코드를 살펴보겠습니다.
이 소스에서 day의 값은 2입니다.
switch 문은 day의 값을 평가하고 해당 case와 일치시킵니다. day가 2이므로 case 2 블록 내의 코드가 실행되어 dayName에 "Tuesday" 값을 할당합니다. break 문은 해당 사례가 실행된 후 실행이 switch 문을 종료하도록 합니다. 결과적으로 "화요일"이 콘솔에 기록됩니다.
'day'에 어떤 경우와도 일치하지 않는 값이 있는 경우 기본 사례가 실행되고 'invalid day'가 'dayName'에 할당됩니다.
'switch' 문은 여러 조건을 처리하는 구조화된 방법을 제공하며 경우에 따라 일련의 'if...else if...else' 문에 대한 더 읽기 쉬운 대안이 될 수 있습니다.
결론적으로 자바스크립트와 다른 언어에서 if, if...else 및 switch와 같은 제어 흐름 구문을 이해하는 것은 코드에서 효과적인 의사 결정 및 논리 구현에 필수적입니다. 이러한 제어문은 특정 조건이나 식에 따라 다양한 코드 블록을 실행할 수 있는 유연성을 제공합니다.
이러한 구성을 활용하여 다양한 시나리오를 쉽게 처리하는 동적 및 반응형 프로그램을 만들 수 있습니다. 코드의 복잡성과 가독성에 따라 적절한 명령문을 선택해야 합니다.
감사합니다.
틀린 부분이 있거나 더 좋은 내용 훈수 환영합니다!
공감과 댓글 부탁드립니다.
'JavaScript' 카테고리의 다른 글
[자바스크립트] 함수와 함수를 이용한 프로그램 (0) | 2023.07.20 |
---|---|
[자바스크립트] 제어문(2) (0) | 2023.07.10 |
[자바스크립트] 연산자(2) (0) | 2023.07.05 |
[자바스크립트] 연산자(1) (0) | 2023.07.04 |
[자바스크립트] 자료형 (5) | 2023.06.21 |