"while"循环和"do while"循环之间的区别

nar*_*tra 33 c loops

while循环和while循环之间有什么区别.我曾经认为两者完全相同.然后我遇到了以下一段代码:

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

这段代码完美无缺.它打印字长和tascans输入.但是当我改变它

while(wdlen<2){
        printf("Word length... ");
        scanf("%d", &wdlen);
    } 
Run Code Online (Sandbox Code Playgroud)

它给出了一个空白屏幕.它不起作用.因此两个循环之间存在一些功能差异.任何人都可以解释一下吗?提前致谢.

编辑:这两个有什么不同吗?

hyd*_*gen 58

同时做一次循环检查,同时的条件之前执行循环的内容.

while循环将在执行内容之前首先检查条件.

在这种情况下,您正在等待用户输入scanf(),它将永远不会在while循环中执行,因为wdlen未初始化并且可能只包含可能大于2的垃圾值.

  • 如果我是一个编译器并且wdlen不会被初始化,我会跳过整个块,因为如果它未定义它也可能总是> 2. (2认同)

Gui*_*ois 18

同时:您的条件位于循环块的开头,并且可以永远不进入循环.

Do While:您的条件位于循环块的末尾,并且必须至少进入一次循环.