명령, 흐름을 제어한다.
if (조건식) {
// statement1
} else if(조건식) {
// statement2
} else {
// statement3
}
if 안에 있는 조건식이 참인 경우 해당하는 if문, else if문을 실행 한다.
조건문(if, else if)에 모두 해당하지 않으면 else에 있는 statement3 이 실행된다.
else if에는 갯수 제한이 따로 없다.
var score = 96;
var lecture = "sports";
if("sports" == lecture){
if (score >= 70){
console.log("점수 : pass");
}
else{
console.log("점수 : fail"); }
}
else{
if (score >= 90){
console.log("점수 : A");
}else if (score >= 80){
console.log("점수 : B");
}else if (score >= 70){
console.log("점수 : C");
}else if (score >= 60){
console.log("점수 : D");
}else { console.log("점수 : F"); }
}
const temp = 1 === "1" ? "참일때" : "거짓일때";
// 아래 if문과 같은 뜻이다.
let temp2;
if (1 === "1") {
temp2 = "참일때";
} else {
temp2 = "거짓일때";
}
1) false
2) undefined
3) null
4) 0
5) NaN
6) the empty string ("")
ex) if 안의 조건문이 "참"이 아니기 때문에 else 문 실행
1) ===, !== : 한 값이 다른 값과 같거나 다른지 판단 한다.
2) <, > : 한 값이 다른 값보다 작은지 큰지 판단 한다.
3) <=, >= : 한 값이 다른 값보다 작거나 같은지, 크거나 같은지 판단 한다.
var score = 96; if (score >= 90){ console.log("점수 : A"); // 해당문 실행
}else if (score >= 80){ console.log("점수 : B");
}else if (score >= 70){ console.log("점수 : C");
}else if (score >= 60){ console.log("점수 : D");
}else { console.log("점수 : F"); }
for (초기문; 조건문; 증감문) {
조건문의 결과가 참인 경우 반복적으로 실행하고자 하는 명령문;
}
ex)
for (var i = 1; i < 10; i++) { console.log(i + "번째 실행"); }
마지막에 num++;를 쓰지 않는다면 증감을 하지않아 무한루프에 빠지게 된다.
${ }
사이에 변수나 연산 등을 삽입할 수 있습니다.(기존의 따옴표 방식에서는, + 연산자로 여러번 이어 붙여야 했다.
var name = `사과`
var price = 100
var num = 5;
console.log(name + "의 구매가는 " + (price * num) + "원 입니다");
)
ex)
var coworkers = { 'a' : 'sera', 'b' : 'egoing'};
for(var key in coworkers) {
console.log(key);} // a, b 출력
즉, coworkers안에 있는 key들을 하나하나 출력한다는 뜻이다.
var coworkers = { 'a' : 'sera', 'b' : 'egoing'};
for(var key in coworkers) {
console.log(coworkers[key]);} //sera, egoing 출력
while (조건문) {
조건문의 결과가 참인 경우 반복적으로 실행하고자 하는 명령문;
}
ex)
var i = 1;
while (i < 10) { // 변수 i가 10보다 작을 때만 while 문을 반복함.
console.log(i + "번째 실행"); i++; }
break는 if문에 해당되는게 나오면 중단,
continue는 그것만 빼고 진행
1 : j=0만 실행되고 break된다.
2 : i=0, j=0 일때만 실행되고 종료된다.
여러 개의 중첩 반복문을 한 번에 빠져나와야 하는 경우가 종종 생기곤 합니다.
i와 j를 반복하면서 프롬프트 창에 (0,0)부터 (2,2)까지를 구성하는 좌표 (i, j)를 입력하게 해주는 예시를 살펴봅시다.
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
let input = prompt(`(${i},${j})의 값`, '');
// 여기서 멈춰서 아래쪽의 `완료!`가 출력되게 하려면 어떻게 해야 할까요?
}
}
alert('완료!');
사용자가 Cancel 버튼을 눌렀을 때 반복문을 중단시킬 방법이 필요합니다.
input 아래에 평범한 break 지시자를 사용하면 안쪽에 있는 반복문만 빠져나올 수 있습니다.
이것만으론 충분하지 않습니다(중첩 반복문을 포함한 반복문 두 개 모두를 빠져나와야 하기 때문이죠). 이럴 때 레이블을 사용할 수 있습니다.
레이블(label) 은 반복문 앞에 콜론과 함께 쓰이는 식별자입니다.
labelName: for (...) {
...
}
반복문 안에서 ```break <labelName>```문을 사용하면 레이블에 해당하는 반복문을 빠져나올 수 있습니다.
outer: for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
let input = prompt(`(${i},${j})의 값`, '');
// 사용자가 아무것도 입력하지 않거나 Cancel 버튼을 누르면 두 반복문 모두를 빠져나옵니다.
if (!input) break outer; // (*)
// 입력받은 값을 가지고 무언가를 함
}
}
alert('완료!');
위 예시에서 break outer는 outer라는 레이블이 붙은 반복문을 찾고, 해당 반복문을 빠져나오게 해줍니다.
따라서 제어 흐름이 (*)에서 alert('완료!')로 바로 바뀝니다.
consol.log(i); = 2,4,6,8,10
%를 쓴 이유 : 짝수라는 조건이 있어야 하므로 %(나머지 구하는 연산자)가 0일때 실행하도록 한 것.