if문의 기본 형태는 다음과 같다.
if(조건){ 조건이 true일 때 실행할 코드 }예시
let age = 16 if(age < 20){ console.log("미성년자입니다.) }변수 age의 갑싱 20보다 작다, 라는 조건이 true를 반환한다면?
콘솔 창에 "미성년자입니다"라고 출력이 된다.
if는 조건의 참 거짓을 나타내는 것이고 else는 조건이 거짓일 때 추가 정의를 입력한다.
if(조건) { 조건이 true일 때 실행할 코드 } else { 조건이 false일 때 실행할 코드 }
→else를 추가한 if문을 if-else문이라고 부르기도 한다.
else문은 제한 없이 추가할 수 있다.
유사하지만 약간씩 차이가 있는 조건 여러 개를 처리해야 할 때가 있다.
그 때 else if를 사용한다.
let year = prompt('년도'); if(year<2022){ aleart('숫자 올리기'); }else if(year > 2022){ alert('숫자 내리기'); }else{ alert('정답'); }
위 예시에서 if 조건인 year < 2022를 확인하고, 이 조건이 거짓이라면 다음 조건 year > 2022를 확인 후 이 조건 또한 거짓이라면 else절 내의 alert를 실행한다.
가끔 코드를 짤 때, 조건에 따라 변수에 값을 할당해야 할 때가 있다.
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살 보다 작은지 큰지 비교한다.
만약 true이면 "Hi, Baby!"라는 alert창을 띄우고, 아니면 콜론( : ) 다음의 연산인 age가 18보다 작은지 큰지를 비교한다.
만약 비교 결과가 true면 "Hello!"를 반환하고 아니면 다음 콜론( : )의 연산인 age가 100보다 작은지 큰지를 비교한다.
만약 비교 결과가 true면 "hi!"를 반환하고 아니면 마지막 콜론 ( : ) 뒤의 "What?"를 반환한다.
가끔 ?연산자는 if를 대체하여 사용하기도 하는데 이런 식으로 물음표 연산자를 사용하는 것은 좋지 않다. 코드 길이가 짧아지긴 하지만 가독성이 좋지 않다.
비슷하거나 동일한 구문을 반복해서 수행할 수 있는 구문이고 대표적으로 for문과 while문이 있다.
구문 작성시 반복을 위해 필요한 세 가지 요소를 한 곳에 모아 작성함으로써 직관적으로 반복 횟수를 표현할 수 있는 구문이다.
for(초기식; 조건식; 반복식){
조건이 true인 경우 반복 수행할 코드
}
→초기식: 반복 조건의 초기화 작업
→반복식: 반복이 한 번 끝날 때마다 실행될 작업
예시
for (let i = 1; i <= 10; i++) { console.log(i); }
'주어진 조건이 참일 동안에 구문을 반복하는' 반복문이다.
while(조건){
조건이 true인 동안에 반복 수행할 코드
}
→조건이란 불리언을 반환하거나 불리언으로 해석될 수 있는 표현식!
→반복 구문은 '루프'라고도 한다.
예시
let i = 1; while (i <= 5) { console.log(i); i++; }i가 1이고 i가 5보다 작거나 같을 때까지 반복한다.
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문 표현식의 참/거짓을 검사한다는 것이다.