使用空的for循环有什么问题吗?
Is there anything wrong with using an empty for loop?
自从我上次编程以来已经有一段时间了,我似乎已经忘记了使用空的"for循环"来创建无限循环是否可以接受?
for(;;)
目前我在一个程序中使用这个方法,使它反复要求用户输入两个数值,每个数值对应程序中的双变量。然后程序调用一个函数并计算这两对数字的和。
为了终止程序,我有"if"语句来检查用户输入的值是否为零,如果值为零,则使用"Return 0;"参数终止程序。
程序检查每个用户输入的值是否在赋值给变量后直接为零。
那么真正的问题是:这是一个正确的方法,使我的程序做我所描述的?或者是否有一个更/更好/被接受的编程方式?
其次,我在这个程序中使用"返回0"参数有什么问题吗?
如果你认为我写的内容或意思很难理解,请回复,我会花更多的时间来写。
您所做的非常好,这是编写和退出无限循环的惯用方法。
对于无限循环,我总是使用while(true)
我在一些地方看到过这种情况:
#define forever for(;;)
forever {
}
我不确定我会推荐它
for(;;)
和while(1)
都可以接受。这些只是语言提供的条件循环,你可以根据需要使用它们来创建一个无限循环。
这是有效的,你可以继续你的代码
是的,完全可以接受。一旦在循环中有了退出条件(break
或return
),就可以在循环语句中将循环设置为"无限"—只需将退出条件从循环语句移到循环体中。如果这样可以让程序更容易读,你当然可以这么做。
对于无限循环,for (;;)
是相当常见的做法。但是如果你有一个条件,比如一个非零的用户输入,你总是可以在while
循环中完成这个检查。
您还可以使用while循环与条件重复请求用户输入。
while (condition) {
...
}
可以使用。
你所描述的将工作得很好,但值得一提的是,某些严格的编码标准(即MISRA)将不赞成在函数结束前使用return
。
如果你的代码符合这样的标准,那么你可以使用do-while
循环和合适的退出条件:
do {
// get userinput
if (userinput != '0')
{
// do stuff
}
} while (userinput != '0');
- 警告处理为错误这里有什么问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 当我尝试添加 2 个大字符串时,我无法弄清楚出了什么问题
- 违反const正确性:我应该现实地期待什么问题
- 这个带有模板<类 Vector 的C++代码片段有什么问题>
- 我的逻辑反转字符串中的元音有什么问题?
- 需要以下代码的帮助,下面的代码有什么问题
- 常量公共成员有什么问题?
- 以下代码中的函数模板有什么问题?
- 这个返回元素位置的基于循环的函数有什么问题?
- creat_list2功能有什么问题?
- 格式说明符C++有什么问题
- 任何人都可以告诉我我的 C++ 代码出了什么问题?
- 从 argv[1] 转换为字符 * 字符串后有什么问题?
- 我的堆栈和库存清单程序的结构有什么问题?
- 此工厂功能有什么问题?
- 以下 C++ 代码有什么问题?
- 数组为此合并排序函数提供了正确的输出,但向量给出了不正确的输出.出了什么问题?
- reinterpret_cast,只读访问,简单的可复制类型,会出什么问题?
- 它解决了什么问题,对于非真空初始化,生命周期在初始化之前就开始了