在 C 或 C++ 中,循环可以同时具有 "do" 和"while"部分吗?
In c or c++ can a loop have both "do" and "while" sections?
给定do ... while
循环和while
循环中常见的while()
语句,以及while
循环的主体被替换为do ... while
上的分号的位置,就好像它是一个复合语句变成一个空语句(或结束一个长语句的行(:
任何 C 系列语言中的语法是否允许在定义两个主体的情况下进行"do while and while"循环?
据推测,语义将是一个单循环,其中一些操作发生在检查之前,一些操作发生在检查之后。
例如:
do {
foo();
} while ( baz() == true ){
bar();
}
foo()
总是会发生一次,但只有在返回 truebar()
之后才会发生baz()
。
它们不能同时使用。 语法为:
而(表达式(语句
或:
do 语句 而(表达式( ;
因此,您不能像示例中那样执行此操作:
do {
foo();
} while ( baz() == true ){
bar();
}
但你可以接近这个:
do {
foo();
if (!baz()) break;
bar();
} while (1);
你似乎在要求
do
statement0
while (condition)
statement1
这可以通过以下方式实现:
do
{
statement0
if (!(condition)) break;
statement1
} while (1);
在 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();
}
在do-while 循环条件之后被{}
包围的区域:
{
bar();
}
不是 do-while 循环的一部分。
它将被视为一个单独的范围块中的一堆语句,这些语句将在 do-while-loop 完成/完成后执行。
但即便如此,编译器也只会让这个通过,如果你在 do-while-loop 条件之后设置了分号;
:
do {
foo();
} while ( baz() == true );{ // Note the semicolon ";".
bar();
}
使用提供的代码:
do {
foo();
} while ( baz() == true ){
bar();
}
编译器将引发错误。
在 C 或 C++ 中不允许在同一循环中同时使用 do 和 while 块。 在任何其他编程语言中也不允许这样做。
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 如果条件为TRUE(最佳方式?),则在do while循环中后置增量
- 即使没有满足他们的条件,我也无法通过一些 do-while 循环
- 如何使用 do while 循环确定最高值和最低值
- do while 循环中的 if 语句以 yes 或 no 结尾
- 使用 while 或 do while 退出循环
- 带有开关语句的 do-while 循环 -- 无穷循环错误
- 为什么当我输入一个被接受的数字时,我的 do-while 循环没有中断?
- 为什么我的 Do-while 循环无法在C++中运行菜单
- 如果语句不会在 do - while 循环中运行
- 如何在c++中读取do-while循环中的空白
- 什么是'do while loop'的真实应用?
- 将嵌套的 for 循环更改为 do-while 循环
- 如何修复不会在退出选择时终止的 do-while 循环
- 为什么这个do-while循环每隔一个循环只写入数组?
- C++ do/while 循环和 if/else: 骰子游戏 -- 第 75 行错误:"Cout"之前的预期"While" -- 如何解决这个问题?
- 卡在链表中的无限 Do-while 循环中
- for(;;) vs do..while() for main program loop
- 试图调节我的 do-while 以停止在终端中退出程序.菜单不会根据需要循环使用当前语句
- 使用基本 do-while 循环求解泊松方程