codememo

"while" 루프와 "do while" 루프의 차이

tipmemo 2023. 6. 27. 22:14
반응형

"while" 루프와 "do while" 루프의 차이

while 루프와 do while 루프의 차이점은 무엇입니까?저는 둘 다 완전히 같다고 생각하곤 했습니다.그리고 다음과 같은 코드를 발견했습니다.

do {
        printf("Word length... ");
        scanf("%d", &wdlen);
    } while(wdlen<2);

이 코드는 완벽하게 작동합니다.그것은 단어 길이를 인쇄하고 입력을 스캔합니다.하지만 제가 그것을 바꾸었을 때.

while(wdlen<2){
        printf("Word length... ");
        scanf("%d", &wdlen);
    } 

빈 화면을 제공합니다.작동하지 않습니다.그래서 두 루프 사이에는 약간의 기능적인 차이가 있습니다.누가 설명해 줄 수 있나요?

이 두 가지가 또 다른 차이점이 있습니까?

Do while 루프는 루프의 내용을 한 번 실행한 후 상태를 확인합니다.

반면, 잠시 루프를 수행하면 내용을 실행하기 전에 먼저 상태를 확인할 수 있습니다.

이 경우 wdlen이 초기화되지 않고 2보다 클 수 있는 가비지 값만 포함할 수 있으므로 루프 중에 실행되지 않는 scanf()를 사용하여 사용자 입력을 기다리고 있습니다.

반면 : 상태는 루프 블록의 시작에 있으며 루프에 절대 들어가지 않도록 합니다.

Do While : 사용자의 상태는 루프 블록의 끝에 있으며, 루프에 한 번 이상 진입해야 합니다.

do {
    printf("Word length... ");
    scanf("%d", &wdlen);
} while(wdlen<2);

A do-while루프는 루프 반복 후 루프 상태를 확인하므로 루프 실행을 한 번 이상 보장합니다.따라서 문자열을 인쇄하고 scanf를 호출하여 wdlen 변수를 업데이트합니다.

while(wdlen<2){
    printf("Word length... ");
    scanf("%d", &wdlen);
} 

while루프, 루프 본체가 실행되기 전에 루프 상태를 평가합니다. wdlen아마도 코드에서 2개 이상으로 시작해서 루프 본체에 도달하지 못하는 이유일 것입니다.

종료 제어 루프에 있는 동안 수행합니다.는 엔트리 제어 루프입니다.

시간:

  1. 진입 제어 루프

  2. 루프 실행 전 상태 확인

  3. 조건이 거짓인 경우 루프를 실행하지 않음

  4. while 문 끝에 세미콜론이 없습니다.

실행 시간:

  1. 종료 제어 루프

  2. 루프의 끝에서 상태가 확인됩니다.

  3. 나중에 조건이 확인되므로 잘못된 조건을 한 번 이상 실행합니다.

  4. while 문 끝에 세미콜론이 있습니다.

조건을 평가할 때 차이가 있습니다.do..while루프, 각 루프가 끝날 때까지 조건이 평가되지 않습니다.은 즉, 즉,do..while루프는 항상 한 번 이상 실행됩니다.인어while루프, 시작 시 조건이 평가됩니다.

여기서 나는 가정합니다.wdlen처음에 거짓으로 평가하는 것입니다(즉, 1보다 큽니다).while루프, 그래서 while 루프는 실행되지 않습니다.에서do..while루프, 첫 번째 루프가 끝날 때까지 확인되지 않기 때문에 기대하는 결과를 얻을 수 있습니다.

Do while 루프가 한 번 이상 실행되지만 루프가 먼저 상태를 확인한 다음 상태에 따라 실행될 수도 있고 실행되지 않을 수도 있습니다.

예제에서 wdlen은 루프가 실행되지 않는 동안 2보다 큰 가비지 값을 가정할 수 있습니다.

반면에 루프가 실행되는 동안 수행하고 종료 조건에서 값을 입력하고 해당 값을 확인하도록 지시할 것입니다.

while(wdlen<2){
  ...
 }  

wdlen(스택 변수라고 가정)이 초기화되지 않거나 while 루프가 입력되기 전에 값을 할당하지 않으면 wdlen은 이전에 메모리에 있던 모든 것(즉, 가비지)을 포함합니다.따라서 가비지 값이 2 미만이면 루프가 실행되고 그렇지 않으면 실행되지 않습니다.

do{
 ...
}while(wdlen<2)

에서는 한 번 실행된 다음 루프를 다시 실행하는 조건을 확인합니다. 이번에는 초기화되지 않은 wdlen이 2보다 작은 것으로 확인되면 성공할 수 있습니다.

아마wdlen값 >=2로 시작하므로 두 번째 경우 루프 조건이 처음에는 false이고 루프는 입력되지 않습니다.

두 번째 경우 루프 본체는 다음보다 먼저 실행됩니다.wdlen<2상태가 처음으로 확인되므로,printf/scanf한 번 이상 실행됩니다.

while 루프 내에서 문을 실행하기 전에 조건을 테스트하는 동안.

루프 내에서 문을 실행한 후 조건을 테스트하는 동안 수행합니다.

출처: 우리 C.

while 루프에서 문을 실행하기 전에 조건을 테스트하는 동안.

루프 내부에서 문을 실행한 후 조건을 테스트하는 동안 수행합니다.

WHIN에서 먼저 상태를 확인한 후 프로그램을 실행합니다. DO-WHIN 루프에서 프로그램을 한 번 이상 실행한 후 상태를 확인합니다.

do while (exit check)와 while (entry check)의 차이점은 do in이 체크인을 하지 않고 처음 체크를 할 때 do in을 입력한다는 것입니다.

예는 다음과 같습니다.

프로그램 1:

int a=10;
do{
System.out.println(a);
}
while(a<10);

//here the a is not less than 10 then also it will execute once as it will execute do while exiting it checks that a is not less than 10 so it will exit the loop

프로그램 2:

int b=0;
while(b<10)
{
System.out.println(b);
}
//here nothing will be printed as the value of b is not less than 10 and it will not let enter the loop and will exit

출력 프로그램 1:

10

출력 프로그램 2:

[인쇄되지 않음]

참고:

프로그램 1과 프로그램 2의 출력은 만약 우리가 a=0과 b=0을 할당하고 또한 프로그램의 각각의 본체에 a++;와 b++;를 넣는다면 동일할 것입니다.

반복하는 동안:

while(test-condition)
{
      statements;
      increment/decrement;
}
  1. 실행 시간 및 속도 감소
  2. 엔트리 조건 루프
  3. 반복 횟수가 고정되지 않음

루프하는 동안 실행:

do
{
      statements;
      increment/decrement;
}while(test-condition);
  1. 실행 시간 및 속도 향상
  2. 조건부 루프 종료
  3. 반복 횟수가 최소 한 번

항목에 대한 자세한 내용은 여기에서 확인하십시오. 루프하는 동안과 실행하는 동안의 차이

이것은 C 프로그래밍, Java 프로그래밍 및 기타 언어에도 유효합니다. 왜냐하면 개념은 동일하게 유지되고 구문만 변경되기 때문입니다.

또한 유의해야 할 또 다른 작지만 차별화 요소는 실행 중 루프가 실행 중 조건의 끝에 세미콜론으로 구성되어 있다는 것입니다.

while부터 1단계까지의 대 .do while▁theions▁within▁express▁any다▁is▁that에 있는 모든 표현들입니다.do {}는 스템 내상관최한소번다실 한 번 됩니다.while()

println("\nStep 2: How to use do while loop in Scala")
var numberOfDonutsBaked = 0
do {
  numberOfDonutsBaked += 1
  println(s"Number of donuts baked = $numberOfDonutsBaked")
} while (numberOfDonutsBaked < 5)

다음은 자세한 설명입니다.설명 방문 : 코더 포에버

사이의 가장 중요한 차이점은while그리고.do-while는 루는에 있다니습프에 입니다.do-while주어진 조건이 거짓일지라도 코드 블록은 적어도 한 번 실행됩니다.

다르게 표현하자면:

  • 반면에, 당신의 상태는 루프 블록의 시작에 있으며 루프에 절대 들어가지 않도록 합니다.
  • While 루프에서는 테스트 결과가 참일 경우 먼저 조건을 테스트한 다음 코드 블록을 실행합니다.

언급URL : https://stackoverflow.com/questions/3625759/difference-between-while-loop-and-do-while-loop

반응형