给定do ... while和while循环中常见的while语句,以及在do ... while上将while循环的主体替换为分号的方式,就好像复合语句被转换为空语句(或结束long语句的行):
在任何C族语言中的语法是否允许在定义了两个主体的情况下使用"do while and while“循环?
据推测,语义将是一个单独的循环,一些操作发生在检查之前,而一些操作发生在检查之后。
例如:
do {
foo();
} while ( baz() == true ){
bar();
}foo()总是发生一次,但是bar()只在baz()返回true之后才会发生。
发布于 2020-01-21 18:05:33
在C或C++中,循环可以同时包含“do”和“while”节吗?
在任何C族语言中的语法是否允许在定义了两个主体的情况下使用"do while and while“循环?
不,您可以使用while循环或do-while循环。while循环与do-while循环不同,反之亦然。
不能将两种类型合并在一起。
它只能是一个并发循环:
do
{
/* statements */
}while(condition);或者while循环:
while(condition)
{
/* statements */
};在while循环中,在一定条件下执行语句。在do while循环中,您至少要在循环中运行一次,直到达到该条件为止。但是,两个循环的中心都在末尾,相同类型的语句/循环体。因此,增加第二个方案是没有意义的。
当您使用do-while循环时,就像您所做的那样:
do {
foo();
} while ( baz() == true ){
bar();
}{}在以下并发循环条件后包围的区域:
{
bar();
}不是do-while循环的一部分。
它将被视为一个单独的作用域块中的一组语句,在完成/完成do-while-循环之后将被执行。
但是即使这样,编译器也只有在do-while循环条件之后设置分号;时,才允许这样做:
do {
foo();
} while ( baz() == true );{ // Note the semicolon ";".
bar();
}所提供的代码为:
do {
foo();
} while ( baz() == true ){
bar();
}编译器将抛出一个错误。
发布于 2020-01-21 17:31:30
它们不能同时使用。语法是:
while (表达式)语句
或者:
do语句,而(表达式);
所以你不能像在你的例子中那样做:
do {
foo();
} while ( baz() == true ){
bar();
}但你可以接近这一点:
do {
foo();
if (!baz()) break;
bar();
} while (1);发布于 2020-01-21 17:38:03
你好像是在要求
do
statement0
while (condition)
statement1这可以通过以下方式实现:
do
{
statement0
if (!(condition)) break;
statement1
} while (1);https://stackoverflow.com/questions/59846293
复制相似问题