[ES6] 18. while
본문 바로가기

컴퓨터공부/Javascript

[ES6] 18. while

by Life & study 2023. 5. 29.
반응형

[ES6] 18. while()

while() 문은 지속적인 while()로 인해서 조건이 거짓이 되게끔 반복할때 쓰인다.

 

let i = 1;
while (i <= 5) {
  console.log(i);
  i++;
}


while() 문은 조건식이 참(true)인 동안 반복됩니다. while()문은 특정 횟수만큼 반복하는 것이 아니라, 조건이 참인 동안 계속 반복되기 때문에, 반복의 횟수에 제한이 없습니다. 따라서 반복문 충족되는 조건 자체가 없으면 무한 반복에 빠질 수 있으므로 주의가 필요합니다. 이것은 조건식이 false가 되기 전까지 계속 반복합니다.

다음은 while()문에 대한 예시 코드입니다.

```
let num = 1;
while (num <= 5) {
  console.log(num);
  num++;
}
```

위 코드에서, 변수 num는 초기값으로 1을 가지며, while()문은 num이 5보다 작거나 같은 동안 반복됩니다. num이 5가 될 때까지 반복문을 실행하며, num이 1, 2, 3, 4, 5가 순서대로 콘솔에 출력됩니다.

while()문은 다음과 같이 무한 반복되게 사용될 수 있습니다.

```
while (true) {
  console.log('무한반복!');
}
```

위 코드에서, while()문의 조건식은 항상 참(true)이므로, 무한 반복문이 생성됩니다. 이것은 위험한 코드이므로, 주의가 필요합니다.

while()문은 루프 횟수에 제한이 없기 때문에, 특정 조건에 도달할 때까지 실행되도록하여 코드를 최적화하는 데 유용합니다. 하지만, 무한 반복에 빠질 위험이 있기 때문에, 코드 작성시 주의해야 합니다.

 


do...while문,

do...while문은 while문과 비슷하지만, 반복문의 조건식 검사를 마지막으로 수행되며, 적어도 한 번은 실행됩니다. 즉, 조건식이 거짓(false)이더라도 최소한 한 번은 코드 블록이 실행됩니다.

다음은 do...while문에 대한 예시 코드입니다.

```
let count = 0;

do {
  console.log(count);
  count++;
} while (count < 5);
```

위 코드에서, 변수 count는 초기값으로 0을 가지며, do...while문은 코드 블록을 한 번 실행하고, count가 5보다 작은 동안 반복

 


 for , if ,continue을 이용한 코드,

for (let i = 1; i <= 5; i++) {
  if (i == 3) {
    continue;
  }
  console.log(i);
}

 

while 에서, continue를 쓰면,

if문이 조건이 맞고 continue는 밑으로만 내려가는것을 막는다.  break는 완전히 종료하는것을 뜻한다. 

 

continue를 만나면 뒤로 간다 이렇게 생각하자.


for , if ,else, continue, document.write을 코드를 이용해서 복잡한 funtion 문 만들어보기

function calculateGrade(score) {
  if (typeof score !== "number" || isNaN(score)) {
    // 인수의 유효성 검사 절대값으로 두개다 맞아야 실행된다.
    //숫자 이외의것을 입력하면 실행안되는문구가 나온다.
    document.write("Please enter a valid score.");
    return;
  }

  let grade;

  if (score >= 90) {
    grade = "A";
  } else if (score >= 80) {
    grade = "B";
  } else if (score >= 70) {
    grade = "C";
  } else if (score >= 60) {
    grade = "D";
  } else {
    grade = "F";
  }

  if (grade === "F") {
    document.write("Sorry, you failed the course.");
    // 미달인경우,
  } else {
    document.write(
      "Congratulations, you passed the course with a grade of " + grade
    );
    // F이상의 학점으로 합격한경우
  }
}
calculateGrade(10);
// Output: Please enter a valid score.

10인경우, 

라고 나온다.

반응형

댓글