JAVASCRIPT
제어 구문
걍가영
2019. 7. 23. 20:00
제어구문
조건문
if...else구문
조건에 따라 특정 영역의 코드를 실행시키거나 실행시키지 않을 수 있습니다. else가 필요없는 경우 else를 생략할 수 있습니다.
if...else 구문의 중첩이 가능합니다.
function roll() {
return Math.ceil(Math.random() * 6);
}
function game() {
const result = roll();
alert(`결과: ${result}`);
//if...else구문
if (result >= 4) {
// 괄호 안의 조건을 만족하면, 즉 결과값이 true 이면
// 이 영역의 코드가 실행됩니다.
alert('당신이 이겼습니다!');
} else {
// 결과값이 false 이면
// 대신 이 영역의 코드가 실행됩니다.
}
}
game();
// else를 생략
if (result === 6) {
alert('당신은 운이 좋아요');
}
switch 구문
하나의 변수에 대해 많은 경우의 수가 있는 경우는 switch구문을 사용하면 코드를 더 보기 좋게 만들 수 있습니다.
case, break, default 함께 사용
function chageColor(english) {
let result;
switch (english) {
case 'red':
result = '빨간색';
break;
case 'blue':
result = '파란색';
break;
case 'purple':
result = '보라색';
break;
default:
result = '일치하는 색깔이 없습니다';
}
return result;
}
switch 바로 뒤의 괄호의 값이 '코드 실행 여부를 판별할 기준이 되는 값'이고,
이 기준이 되는 값과 case 바로 뒤에 오는 값이 일치하면 콜론(:) 뒤의 코드 영역이 실행됩니다.
일치하는 값이 없으면 default 코드 영역이 대신 실행됩니다.
case 뒤쪽의 코드 영역 마지막에 break를 써주지 않으면, 해당 case가 실행될 때 바로 뒤의 case코드 영역이 뒤이어 실행되게 됩니다.
반복문
while 구문
let i = 0; //초기값
while (i < 5) {
//위 괄호의 값이 'true'인 동안에는
//이 안쪽의 코드를 반복해서 실행시킵니다
consolo.log(\`현재 i의 값: ${i}\`);
i++; //갱신
}
console.log('루프가 종료되었습니다');
do...while 구문
내부 코드를 무조건 한 번은 실행시킵니다.
do {
console.log('hello!');
} while (false); //절대 'true'가 될 수 없지만, 루프는 1회 실행됩니다.
for구문
초기값을 정할 수 있고 갱신을 위한 코드가 짧은 경우에는 for 구문을, 그렇지 않은 경우에는 while 구문을 사용해야 코드가 깔끔해집니다.
//for(초기값 정의; 실행조건; 갱신) { ... }
for (let i = 0; i < 5; i++) {
console.log(`현재 i의 값: ${i}`);
}
console.log('루프가 종료되었습니다');
forEach
const arr = [1, 2, 3, 4, 5];
arr.forEach((item, index) => {
console.log(`배열의 ${i+1}번째 요소는 ${arr[i]}입니다.`);
}
for...of
const arr = [1, 2, 3, 4, 5];
for (let item of arr) {
colsole.log(`현재 요소는 ${item} 입니다.`);
}
break, continue
루프를 도중에 멈추거나, 남은 코드를 건너뛰어버리고 루프의 다음 번 차례로 넘어가야 할 경우 break, continue를 사용하면 됩니다.
alert('퀴즈를 시작합니다')
while (true) {
const anwer = prompt('무지개는 몇개의 색일까요?');
if (answer === 7) {
alert('정답입니다');
break; // 루프를 종료하고 다음 코드로 넘어감
}else {
alert('틀렸습니다');
}
}
alert('퀴즈가 종료되었습니다');