udy JavaScript 0417 - 1hr while, for 반복문
1. While 반복문
while 반복문의 문법은 다음과 같이 사용할 수 있다.
while (condition) { // 조건이 true이면 코드 실행!
// 코드
// '반복문 본문(body)'이라 불림
}
condition(조건)이 ture이면 반복문에 본문에 있는 코드가 실행된다.
다음 예제는 i < 3 을 만족할 동안 i를 출력해주는 코드이다.
let i = 0;
while (i < 3 ) { // 0, 1, 2가 출력
alert(i)
i++;
}
위의 코드에서 반복문 본문이 총 3번 반복하는 것을 알 수 있다.
아래의 예시는 while(i != 0)을 이용하여 while(i)로 만든 코드이다.
추가로 반복문 본문이 한 줄짜리라면 대괄호 { } 를 생략할 수 있다.
let i = 3;
while (i) { // i가 0이 되면 조건이 false가 되므로 반복문이 멈춘다.
alert( i );
i--;
}
<!-- { } 생략 버전 -->
// while(i) aler(i--);
2. do-while 반복문
do-while문법을 사용하면 조건을 반복문 본문 아래로 옮길 수 있다.
do {
// 반복문 본문
} while (condition);
본문이 먼저 실행되고, 조건을 확인한 후 조건이 ture인 동안에만 본문이 계속 실행된다.
let i = 0;
do {
alert( i );
i++;
} while (i < 3);
그렇다면 어떤 경우에 do-while문을 사용할까?
dp-while 반복문은 조건이 ture인지 아닌지에 상관 없이, 본문을 최소한 한 번 이라도 실행하고 싶을 때만 사용해야한다.
대부분의 상환에선 while문이 적합하다.
3. for 반복문
for 반복문은 while반복문 보다는 복잡하지만 가장 많이 쓰이는 반복문이다.
for (begin; condition; step) { // 시작, 조건, 단계
// 반복문 본문
}
아래의 예시를 살펴보자.
for (let i = 0; i < 3; i++) { // 0, 1, 2가 출력됩니다.
alert(i);
}
구성요소 | 예시 | 설명 |
---|---|---|
begin(시작) | i = 0 | 반복문에 진입할 때 단 한 번 실행 |
condition(조건) | i < 3 | 반복마다 해당 조건이 확인된다. false면 반복문 중지 |
body(본문) | alert(i) | 조건이 true일 동안 계속해서 실행 |
step(단계) | i++ | 각 본문이 실행된 이후에 실행 |
일반적인 반복문의 알고리즘은 다음과 같다.
begin을 실행함
→ (조건이 true이면 → 본문 실행 후, step을 실행)
→ (조건이 true이면 → 본문 실행 후, step을 실행)
→ (조건이 true이면 → 본문 실행 후, step을 실행)
→ ...
for문에서 중요한 것은 ";"을 꼭 2개를 사용해줘야 하는 것이다.
4. Break
보통은 조건이 false면 반복문이 종료된다.
하지만 break를 사용해서 원하는 때에 빠져나올수 있다.
아래의 예시를 살펴보자.
let sum = 0;
while (true) {
let value = +prompt("숫자를 입력하세요.", '');
if (!value) break; // 사용자가 아무것도 입력하지 않았을 때
sum += value;
}
alert( '합계: ' + sum );
5. Continue
continue는 현재 반복을 종료시키고 다음 반복으로 넘어가고 싶을 때 사용할 수 있다.
아래의 예시를 살펴보자.
for (let i = 0; i < 10; i++) {
// 조건이 참이면(짝수) 뒤의 본문은 실행되지 않는다.
if (i % 2 == 0) continue;
alert(i); // 1, 3, 5, 7, 9가 차례대로 출력됨
}
6. Label
여러개의 중첩 반복문을 한 번에 빠져나와야 하는 경우가 종종 있다.
아래의 예시는 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('완료!');
위의 코드에서 단순히 break를 사용하면 되는게 아닐까? 라고 생각했다면 틀렸다.
반복문이 2개가 중첩이므로 두 개 모두를 빠져나올수는 없다.
이럴때 레이블을 사용하면 된다.
labelName: for (...) {
...
}
반복문 안에서 break labelName 문을 사용하면 해당 반복문을 빠져나올 수 있다.
outer: for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
let input = prompt(`(${i},${j})의 값`, '');
if (!input) break outer; // 사용자가 아무것도 입력하지 않거나 Cancel 버튼을 누르면 두 반복문 모두를 빠져나온다.
// 입력받은 값을 가지고 무언가를 함
}
}
alert('완료!');
Author And Source
이 문제에 관하여(udy JavaScript 0417 - 1hr while, for 반복문), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@toffg6450/Study-JavaScript-0417-1hr저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)