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后才会发生。
它们不能同时使用。语法是:
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)