상품 목록을 차례대로 불러와야하거나, 1부터 10까지 하나의 코드를 반복해야할 때 사용합니다.
while 기본 문법
<aside> 💡 while (condition) { 반복문 본문 (코드) }
condition이 truthy(참)값일 때 본문을 실행한다 = false면 코드를 종료한다.
ex )
let i = 0 while (i<3) { alert (i); i++ }
condition = i 가 3보다 적을 때까지 i를 출력해줘라, 그런데 이때 i를 0부터 1씩 늘려줘라
</aside>
for 반복문 문법
<aside> 💡 ..
for (begin; condition; step) { // ... 반복문 본문 ... }
for (let i = 0; i<3; i++) { alert (i) } =⇒ 0,1,2 출력
begin = (let i = 0)
condition = (i<3) step = (step)
반복문 알고리즘
begin을 실행함 → (condition이 truthy이면 → body(본문)를 실행한 후, step(i++)을 실행함)
let i 실행 = 0 할당, condition 3보다 낮음 (truthy) → alert 출력 실행, i++ 실행 즉 1 더하기
</aside>
보통 condition이 false가 될 시 반복문은 종료되지만 강제로 종료 시키는 방법
<aside> 💡 let sum = 0
while (true) {
let value = +prompt (”숫자를 입력해주세요”, 0)
if (!value) break ;
sum += value }
alert (”합계”, i)
while 조건이 참일 때 변수 value에 값을 할당 시켜라 사용자에게, 이때 입력 값을 숫자로 변환해라 if value가 참이 아닐때 즉 null, defined 일 때 반복문을 종료 시켜라, sum은 입력 값을 더한 값이다.
</aside>
<aside> 💡 예시 )
for (let i = 0; i < 10; i++) {
// 조건이 참=if (i % 2 == 0)이라면 남아있는 본문 = alert(i); 은 실행되지 않습니다. if (i % 2 == 0) continue;
alert(i); }
출력 값 : 1, 3, 5, 7 ,9 —> i = 2 일 때 i%2 == 0 이기 때문에 참, 다음 반복문 시행 so i =3
3 % 2 == 1 so 조건이 false 그러므로 출력.
for (let i = 0; i < 10; i++) {
if (i % 2) { = i%2 == 1 일때 시행된다 즉 true일때 = (i % 2 == 0 = false) continue alert( i ); }
}
</aside>
<aside> 💡 카운터 변수 i, j 두개를 사용해서 (1,1) 과 같은 좌표 값을 얻는 반복문
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
let input = prompt(`(${i},${j})의 값`, '');
// 여기에 break를 눌러봤자 안쪽 반복문만 빠져나올 수 있다.
} }
alert('완료!');
</aside>
input 부분에서 cancel 눌러 반복문을 종료시키려면? 레이블 식별자 사용!
<aside> 💡 레이블 식별자 outer : for (let = 0, i <3 )~~~~ 즉 반복문 전체에 이름을 붙여서 한번에 빠져나오기
사용예시 )
outer : for (let = 0, i < 3, i ++) {
for (let = 0 j < 3 i++) {
let input = prompt((${i},${j})의 값
, '');
// 사용자가 입력하지 않았을 시
if (!input) break outer;
}
} alert (”완료!”);
</aside>
문제 1 :
사용자가 유효한 값을 입력할 때까지 프롬프트 창 띄우기
중요도: 5