在 c 或 c++ 中,循环可以同时包含“do”和“while”部分吗?

dav*_*man 1 c c++ syntax loops do-while

考虑到and循环中的公共while()语句,do ... while以及while循环while体被 a 上的分号替换的位置的方式,就do ... while好像它是一个复合语句被变成一个空语句(或结束一个长语句的行):

任何 C 家族语言中的语法是否都允许“do while 和 while”循环同时定义两个主体?

据推测,语义将是一个循环,其中一些操作在检查之前发生,一些在之后发生。

例如:

do {
  foo();
} while ( baz() == true ){
  bar();
}
Run Code Online (Sandbox Code Playgroud)

foo()总是会发生一次,但bar()只有在baz()返回 true后才会发生。

dbu*_*ush 5

它们不能同时使用。语法是:

while (表达式)语句

或者:

语句 while (表达式);

所以你不能像你的例子那样这样做:

do {
  foo();
} while ( baz() == true ){
  bar();
}
Run Code Online (Sandbox Code Playgroud)

但是你可以接近这个:

do {
  foo();
  if (!baz()) break;
  bar();
} while (1);
Run Code Online (Sandbox Code Playgroud)