if와 '?' 그리고 while과 for문

뉴비·2024년 10월 19일

열정반

목록 보기
2/4

조건문의 시작은 if

if문의 기본 형태는 다음과 같다.

if(조건){
조건이 true일 때 실행할 코드
}

예시

let age = 16
if(age < 20){
console.log("미성년자입니다.)
}

변수 age의 갑싱 20보다 작다, 라는 조건이 true를 반환한다면?
콘솔 창에 "미성년자입니다"라고 출력이 된다.

else?

if는 조건의 참 거짓을 나타내는 것이고 else는 조건이 거짓일 때 추가 정의를 입력한다.

if(조건) {
조건이 true일 때 실행할 코드
} else {
조건이 false일 때 실행할 코드
}

→else를 추가한 if문을 if-else문이라고 부르기도 한다.
else문은 제한 없이 추가할 수 있다.

'else if'로 복수 조건 처리하기

유사하지만 약간씩 차이가 있는 조건 여러 개를 처리해야 할 때가 있다.
그 때 else if를 사용한다.

let year = prompt('년도');
if(year<2022){
aleart('숫자 올리기');
}else if(year > 2022){
alert('숫자 내리기');
}else{
alert('정답');
}

위 예시에서 if 조건인 year < 2022를 확인하고, 이 조건이 거짓이라면 다음 조건 year > 2022를 확인 후 이 조건 또한 거짓이라면 else절 내의 alert를 실행한다.

조건부 연산자 '?'(삼향 연산 Ternary operator)

가끔 코드를 짤 때, 조건에 따라 변수에 값을 할당해야 할 때가 있다.

let accessAllowed;
let age = prompt('몇 살?', '');
if (age > 18) {
  accessAllowed = true;
} else {
  accessAllowed = false;
}
alert(accessAllowed); 

위에서와 같이 나이가 18세 이상인 경우에 true를 반환하고 아니면 false를 accessAllowed라는 변수에 값을 할당 해야 할 때가 있다. 이 if~else 구문을 좀 더 간단하고 짧은 방식으로 사용하는 것을 "ternary(삼항)", 또는 "question mark(물음표)"라고 한다.

예시

let result = condition ? value1 : value2;

위의 구문에서 condition은 true나 false를 결과값으로 반환되어야할 구문이며, 이 condition이 true이면 value1을, false이면 value2를 리턴한다.
그래서.. 아까 위의 예시를 삼항연산으로 표현하자면

let accessAllowed = (age > 18) ? true : false;

이렇게 표현할 수 있다. 그리고 age > 18의 괄호 부분을 제외해도 상관없다. 그 이유는 상항연산 ?는 낮은 우선 순위에 있기 때문에 비교 연산자인 >가 먼저 실행되고 그 후에 삼항 연산 ?가 실행된다.

다중 삼항연산 '?'

물음표 연산자 ?를 연속으로 사용하면 하나 이상의 조건에 따라 값을 리턴할 수 있다.

let age = prompt('age?', 18); 
let message = (age < 3) ? "Hi, Baby!" :
              (age < 18) ? "Hello!"   :
              (age < 100) ? "hi!" :
              "What?";
alert(message);

이러한 문제를
1. 처음 삼항 연산은 prompt에서 받은 age가 3살 보다 작은지 큰지 비교한다.

  1. 만약 true이면 "Hi, Baby!"라는 alert창을 띄우고, 아니면 콜론( : ) 다음의 연산인 age가 18보다 작은지 큰지를 비교한다.

  2. 만약 비교 결과가 true면 "Hello!"를 반환하고 아니면 다음 콜론( : )의 연산인 age가 100보다 작은지 큰지를 비교한다.

  3. 만약 비교 결과가 true면 "hi!"를 반환하고 아니면 마지막 콜론 ( : ) 뒤의 "What?"를 반환한다.

부적절한 '?'

가끔 ?연산자는 if를 대체하여 사용하기도 하는데 이런 식으로 물음표 연산자를 사용하는 것은 좋지 않다. 코드 길이가 짧아지긴 하지만 가독성이 좋지 않다.

반복문

비슷하거나 동일한 구문을 반복해서 수행할 수 있는 구문이고 대표적으로 for문과 while문이 있다.

for문

구문 작성시 반복을 위해 필요한 세 가지 요소를 한 곳에 모아 작성함으로써 직관적으로 반복 횟수를 표현할 수 있는 구문이다.

for(초기식; 조건식; 반복식){
조건이 true인 경우 반복 수행할 코드
}

→초기식: 반복 조건의 초기화 작업
→반복식: 반복이 한 번 끝날 때마다 실행될 작업

예시

for (let i = 1; i <= 10; i++) {
  console.log(i);
}

while문

'주어진 조건이 참일 동안에 구문을 반복하는' 반복문이다.

while(조건){
조건이 true인 동안에 반복 수행할 코드
}

→조건이란 불리언을 반환하거나 불리언으로 해석될 수 있는 표현식!
→반복 구문은 '루프'라고도 한다.

예시

let i = 1;
while (i <= 5) {
    console.log(i);
    i++;
}

i가 1이고 i가 5보다 작거나 같을 때까지 반복한다.

do...while 반복문

do {
  // 조건식 계산 전 실행
  [명령문]
} while([조건식]) //조건식이 거짓이면 반복문 탈출
// 예시
let sum = 0; var i = 1;
do {
  sum = sum + i;
  i = i + 1;
} while(i < 10) //sum에는 1부터 10까지의 합이 저장된다.

do while문은 while문과 달리 while 문은 표현식의 참/거짓에 따라 명령을 실행하거나 하지 않지만, do while문은 do 부분의 명령을 무조건 한 번은 실행 하고 while문 표현식의 참/거짓을 검사한다는 것이다.

profile
뉴비입니다

0개의 댓글