조건문
if...else
let name = 'sejin';
if (name === 'sejin') {
console.log(`I'm ${name}.`);
} else if (name === 'sujin') {
console.log(`I'm not sejin, I'm ${name}.`)
} else {
console.log('Who are you?');
}
name = 'sujin';
if (name === 'sejin') {
console.log(`I'm ${name}`);
} else if (name === 'sujin') {
console.log(`I'm not sejin, I'm ${name}.`)
} else {
console.log('Who are you?');
}
function isOkayToDrive (who) {
if (who === 'son') {
console.log('No!');
} else if (who === 'Dad') {
console.log('It\'s Okay!');
} else if (who === 'Grand father') {
console.log('Be careful~')
} else {
console.log('Who are you?');
}
}
isOkayToDrive('son');
isOkayToDrive('Dad');
isOkayToDrive('Grand father'); 'Be careful~'
isOkayToDrive('sejin') 'Who are you'
let num1 = 10;
let num2 = 8;
let num3 = 9;
if (num1 > num2) {
if (num1 > num3) {
console.log(`num1이 가장 크다.`)
} else {
console.log(`num1은 num2보다는 크지만 num3 보다는 작습니다.`)
}
}
switch문
- case가 한정적일 때 사용하면 if...else 구문보다 간결하게 사용이 가능하다.
- 값으로 평가할 수 있는 것들을 표현식이라고 한다.
- break문이 필요하다. break문을 사용하지 않으면 case를 만족하더라도 그 다음 case가 실행되기 때문에 꼭 break문을 case가 끝날 때 넣어줘야 된다.
- default문은 없어도 괜찮다. if 조건문에서 else문이 없어도 되는 것과 같다.
switch(표현식) {
case 표현식 : 실행문1 (문장 여러 개)
break;
case 표현식 : 실행문2 (문장 여러 개)
break;
default : 실행문
}
let who = 'Dad';
function isOkayToDrive (who) {
switch(who) {
case 'son': console.log('No!');
break;
case 'Dad': console.log('It\'s Okay');
break;
case 'Grand father': console.log('Be careful~');
break;
default: console.log('Who are you?');
}}
isOkayToDrive('son');
isOkayToDrive('Dad');
isOkayToDrive('Grand father');
- 모던 자바스크립트 입문 책에 있는 예제를 따라해보았다.
function binaryOperation(a, b, operator) {
switch(operator) {
case '+': return a + b;
break;
case '-': return a - b;
break;
case '/': return a / b;
break;
case '*': return a * b;
break;
case '%': return a % b;
break;
default: return NaN;
}}
binaryOperation(10, 4, '+');
binaryOperation(10, 4, '-');
binaryOperation(10, 4, '/');
binaryOperation(10, 4, '*');
binaryOperation(10, 4, '%');
반복문
while
- 조건식을 평가해서 false인 경우 while문을 빠져 나오고, true인 경우에는 문장을 실행하고 while문으로 다시 돌아가서 조건식을 평가한다.
while(조건식) {
문장
증감연산자
}
function fact(n) {
let k = 1;
let i = 1;
while (i < n) {
k += (++i);
}
return k;
}
fact(4);
console.log(fact(5));
let i = 1;
while (i <= 50) {
if (i % 2 === 0 && i % 7 === 0) {
console.log(i)
}
i++;
}
function linearSearch(x, a) {
let i = 0;
let n = a.length;
while (i < n && x > a[i]) {
i++;
}
if (x == a[i]) {
return i;
}
return null;
}
let a = [2, 4, 7, 12, 15, 21, 34, 35, 46, 57, 70, 82, 86, 92, 99];
console.log(linearSearch(35, a));
do/while문
- 입력한 값이 조건에 없을 경우에도 초기값을 주고 싶은 경우에 사용한다.
- do...while문은 조건에 상관없이 무조건 한번은 실행되게 되어 있다.
- do / while문 끝에는 반드시 세미콜론이 붙ㄴ어야 된다.
function fact(n) {
let k = 0;
let i = n;
do {
k += i--;
} while (i > 0) {
return k;
}
}
console.log(fact(5));
let i = 15;
do {
console.log(i);
i++
} while (i <= 10) {
console.log(i);
}
for
for (초기화식; 조건식; 증감식) {
실행문
}
for (let dan = 2; dan < 5; dan++) {
console.log(`${dan}단입니다.`);
for (let i = 1; i < 10; i++) {
console.log(`${i} * {dan} = ${i * dan}`);
}
}
function sumArray(a) {
let sum = 0;
for (let i=0; i < a.length; i++) {
sum += a[i];
}
console.log(sum);
}
let a = [3, 5, 1, 2, 6, 7];
sumArray(a);
점프문
break
- breka문은 switch문과 반복문 안에서만 사용할 수 있다.
- break는 반복문이나 switch문에서 빠져나온다.
for (let dan = 2; dan < 5; dan ++) {
if (dan === 3) {
break;
}
console.log(`${dan}단입니다.`);
for (let i = 1; i < 10; i++) {
console.log(`\t${i}x${dan} = ${i * dan}`);
}
}
continue
- continue문은 반복문 안에서만 사용할 수 있다.
- continue의 경우 잠깐 멈췄다가 다시 실행을 한다.
for (let dan = 2; dan < 5; dan ++) {
if (dan === 3) {
continue;
}
console.log(`${dan}단입니다.`);
for (let i = 1; i < 10; i++) {
console.log(`\t${i}x${dan} = ${i * dan}`);
}
}