C 对do…while()语句中的单个“do”使用多个连续while()

C 对do…while()语句中的单个“do”使用多个连续while(),c,do-while,C,Do While,我想知道“while”语句的执行顺序,以及如何获得以下代码段的输出: #include <stdio.h> int main() { int a; a=10; do { } while(a++<10); while(a++<=11) {} printf("%d",a); } /* Output: 13 */ 片段1: 产出:14 片段2: 输出:15个片段1: do while(a++<10); while(a++<

我想知道“while”语句的执行顺序,以及如何获得以下代码段的输出:

#include <stdio.h>
int main()
{ 
    int a;
    a=10;
    do { } while(a++<10);
    while(a++<=11) {}
    printf("%d",a);
} 
/* Output: 13 */
片段1:

产出:14

片段2:

输出:15个片段1:

do
while(a++<10);
while(a++<=11);
在这里,上面的do-while部分类似于代码片段1,因此在do-while循环之后,a将是14

在该条件之后,++代码段1:

do
while(a++<10);
while(a++<=11);
在这里,上面的do-while部分类似于代码片段1,因此在do-while循环之后,a将是14


在该条件a++之后,因为您没有使用括号,所以您的代码不太清楚各种do while/while是如何执行的

比较以下代码段:

#include <stdio.h>
int main()
{ 
    int a;
    a=10;
    do { } while(a++<10);
    while(a++<=11) {}
    printf("%d",a);
} 
/* Output: 13 */


因此:如果有疑问,请使用括号。

因为您没有使用括号,所以您的代码不太清楚各种do-while/while是如何执行的

比较以下代码段:

#include <stdio.h>
int main()
{ 
    int a;
    a=10;
    do { } while(a++<10);
    while(a++<=11) {}
    printf("%d",a);
} 
/* Output: 13 */

因此:如有疑问,请使用括号。

来源:

表达式时可选的do语句

正如您所看到的,语句不是可选的,您不能编写DoWhileex;-这是一个错误。带空语句的最短形式是这样的:do;whileex

知道了这一点,您可以发现do while循环中的语句实际上是一个while语句,而不是一个空语句。

来源:

表达式时可选的do语句

正如您所看到的,语句不是可选的,您不能编写DoWhileex;-这是一个错误。带空语句的最短形式是这样的:do;whileex


知道了这一点,您可以发现do while循环中的语句实际上是一个while语句,而不是一个空语句。

您为什么要询问/编写这样的代码?代码很难阅读,因为没有一个循环使用括号来划分循环的开始和结束位置。如果你用合适的括号重写代码,我想很明显你为什么会得到这两个和。也许你应该试着在代码中找到它们。使用它们,一切都会变得清晰。另外,调试也是学习控制流的另一个好方法。我投票将这个问题作为离题题来结束,因为OP对c语言还没有理解questions@TimBiegeleisen这可能是从一些错误的在线教程或测验,或者更糟的是,家庭作业中获取的。你为什么要问/写这样的代码?代码很难阅读,因为没有一个循环使用括号来划分循环的开始和结束位置。如果你用合适的括号重写代码,我想很明显你为什么会得到这两个和。也许你应该试着在代码中找到它们。使用它们,一切都会变得清晰。另外,调试也是学习控制流的另一个好方法。我投票将这个问题作为离题题来结束,因为OP对c语言还没有理解questions@TimBiegeleisen这可能是从一些被误导的在线教程或测验,或者更糟的是,家庭作业中获得的。
#include <stdio.h>
int main()
{ 
    int a;
    a=10;
    do { } while(a++<10);
    while(a++<=11) {}
    printf("%d",a);
} 
/* Output: 13 */
#include <stdio.h>
int main()
{ 
    int a;
    a=10;
    do { while(a++<10); } while(a++<=11);
    printf("%d",a);
} 
/* Output: 14 */