C++ 主程序循环的(;;)vs.do..while()

C++ 主程序循环的(;;)vs.do..while(),c++,C++,我正在使用do..while循环来允许我的程序在条件正确时退出,但我在学校的例子中看到过为了退出而抛出异常的情况。这些例子使用了一个正则的无限for循环。我想我可以使用if语句来打破for循环,而不是抛出,但我不确定。代码如下: //main.cpp #包括 #包括 #包括 #包括“commands.h” 使用名称空间std; int main(int argc,char*argv[]){ bool exit=false; 试一试{ 做{ 试一试{ //读一行,在EOF处断开,并回显打印提示 /

我正在使用do..while循环来允许我的程序在条件正确时退出,但我在学校的例子中看到过为了退出而抛出异常的情况。这些例子使用了一个正则的无限for循环。我想我可以使用if语句来打破for循环,而不是抛出,但我不确定。代码如下:

//main.cpp

#包括
#包括
#包括
#包括“commands.h”
使用名称空间std;
int main(int argc,char*argv[]){
bool exit=false;
试一试{
做{
试一试{
//读一行,在EOF处断开,并回显打印提示
//如果需要的话。
弦线;
getline(cin,line);
if(cin.eof()){
第二;
}
命令错误::命令错误(常量字符串和内容):
运行时错误(什么){
}
无效fn_连接(){
}
无效fn\u断开连接(){
}
无效fn_试验(){
}
无效fn_退出(){
}

编辑:包含了更多的源代码。我有很多空白,因为我正在重写一个通过UDP发送数据的程序。我只是在寻找一些关于如何安全退出程序的建议。

do…而
完全等同于
for
循环,只是测试是在循环结束而不是开始时完成的ng,因此,
do…while
始终至少运行一次。在这两种情况下,您都可以使用
break
退出循环。您不需要抛出异常,但当然可以。如果您有多个级别,则通常更容易抛出异常,然后在循环中捕获并中断,或者设置终止条件,或者捕获异常循环外的异常也将终止它。

代码中没有抛出异常。什么是
命令\u错误
?您认为代码为什么会抛出异常?异常应该只用于异常行为。如果循环是永久的,除非发生罕见和戏剧性的事情(例如,一个开放且愉快的串行端口消失)发生异常可能是正确的选择。如果用户按错键,这并不例外。用户总是出错。这应该通过标准错误处理来处理。@user4581301问题是某些语言(如Java)然后,那些习惯于这些语言的人把这种编程带来C++,认为用这种方式编写代码是个好主意。通过你所发布的内容,你可以通过返回<代码> STD::配对< /C>或IF构建C++ 17或更新。循环和我需要从中间出来,我把循环放在它们自己的函数中,从代码中返回代码<>代码。它比一个异常要便宜,而且经常有助于可读性,因为一旦你得到了多于一对的缩进深度,你的函数就可能试图做得太多。