首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在c或c++中,循环可以同时包含"do“和"while”两部分吗?

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

Stack Overflow用户
提问于 2020-01-21 17:25:58
回答 4查看 656关注 0票数 1

给定do ... while和while循环中常见的while语句,以及在do ... while上将while循环的主体替换为分号的方式,就好像复合语句被转换为空语句(或结束long语句的行):

在任何C族语言中的语法是否允许在定义了两个主体的情况下使用"do while and while“循环?

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

例如:

代码语言:javascript
复制
do {
  foo();
} while ( baz() == true ){
  bar();
}

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-01-21 18:05:33

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

在任何C族语言中的语法是否允许在定义了两个主体的情况下使用"do while and while“循环?

不,您可以使用while循环或do-while循环。while循环与do-while循环不同,反之亦然。

不能将两种类型合并在一起。

它只能是一个并发循环:

代码语言:javascript
复制
do 
{ 
    /* statements  */ 
}while(condition);

或者while循环:

代码语言:javascript
复制
while(condition)
{
    /* statements */
};

在while循环中,在一定条件下执行语句。在do while循环中,您至少要在循环中运行一次,直到达到该条件为止。但是,两个循环的中心都在末尾,相同类型的语句/循环体。因此,增加第二个方案是没有意义的。

当您使用do-while循环时,就像您所做的那样:

代码语言:javascript
复制
do {
  foo();
} while ( baz() == true ){
  bar();
}

{}在以下并发循环条件后包围的区域:

代码语言:javascript
复制
{
  bar();
}

不是do-while循环的一部分。

它将被视为一个单独的作用域块中的一组语句,在完成/完成do-while-循环之后将被执行。

但是即使这样,编译器也只有在do-while循环条件之后设置分号;时,才允许这样做:

代码语言:javascript
复制
do {
  foo();
} while ( baz() == true );{      // Note the semicolon ";".
  bar();
}

所提供的代码为:

代码语言:javascript
复制
do {
  foo();
} while ( baz() == true ){
  bar();
}

编译器将抛出一个错误。

票数 3
EN

Stack Overflow用户

发布于 2020-01-21 17:31:30

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

while (表达式)语句

或者:

do语句,而(表达式);

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

代码语言:javascript
复制
do {
  foo();
} while ( baz() == true ){
  bar();
}

但你可以接近这一点:

代码语言:javascript
复制
do {
  foo();
  if (!baz()) break;
  bar();
} while (1);
票数 5
EN

Stack Overflow用户

发布于 2020-01-21 17:38:03

你好像是在要求

代码语言:javascript
复制
do
    statement0
while (condition)
    statement1

这可以通过以下方式实现:

代码语言:javascript
复制
do
{
    statement0
    if (!(condition)) break;
    statement1
} while (1);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59846293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档