草庐IT

while语句

全部标签

c++ - 从嵌入式 C/C++ 逻辑中删除 goto 语句

我想去掉这个goto语句。任何人都可以告诉我相同的逻辑。下面的代码不是我想要修改的确切代码,但它会支持我的问题。请不要在评论此帖子时询问代码的重要性,因为它只是一个示例。intresult[i][j];for(inti=0;i 最佳答案 将这些循环放入一个函数中,为其指定一个合适的名称,并在完成后return;。如果它复杂到需要两个循环,它就值得一个名字。finishedflag很难读懂,所以无论如何你都应该把它放在它自己的函数中,让它过时。异常仅适用于您无法在本地处理的错误。使用它们来通知更高级别的功能您无法修复的错误,而不是如果

c++ - cout 语句如何影响编写的代码的 O/P?

#include#include#includeusingnamespacestd;intmain(){intt;doublen;cin>>t;while(t--){cin>>n;doublex;for(inti=1;i对于I/P:352.983.16O/P:1Ifmycodeis:#include#include#includeusingnamespacestd;intmain(){intt;doublen;cin>>t;while(t--){cin>>n;doublex;for(inti=1;i对于相同的输入O/P是:15025第二个代码中唯一添加的额外行是:cout任何人都可以帮

c++ - 带有 if 语句的 auto 函数不会返回值

我制作了一个模板和一个auto函数,用于比较2个值并返回最小值。这是我的代码:#includeusingnamespacestd;//Templatewithavaluereturningfunction:PrintSmallertemplateautoPrintSmaller(TNumOne,UNumTwo){if(NumOne>NumTwo){returnNumTwo;}else{returnNumOne;}}intmain(){intiA=345;floatfB=23.4243;cout但它无法编译,我在VS2015上遇到此错误:错误C3487“int”:所有返回表达式必须推导出

c++ While循环终止与功能

因为它早些时候工作得很好,所以我抓耳挠腮,但是当我去添加一些其他功能时,我的程序突然崩溃了,我无法让它恢复到原来的状态。类(class)让我编写了一个石头/剪刀布程序来对抗计算机,任何关于为什么循环不断终止自身的帮助都会很棒#include#include#includeusingnamespacestd;voidRPSout(char);intRPScomp();intmain(){charchoice;intendit=0;while(endit==0){cout>choice;RPSout(choice);if(choice=='Q'||'q'){endit=1;}}return

c++ - 使用 switch 语句的函数没有返回

我正在使用较旧的gcc版本(如果我没记错的话是7.something)在LINUX中开发一个应用程序。最近我试图在Windows上运行相同的应用程序。在Windows上,我使用MinGW作为编译器(使用gcc8.1.0)。我在Windows上编译我的应用程序时遇到了这个错误消息:warning:controlreachesendofnon-voidfunction[-Wreturn-type]代码类似如下:classmyClass{protected:enumclassmyEnum{a,b,};intfun(myClass::myEnume);}和intmyClass::fun(myC

c++ - wxWidgets 事件表是哪种 C++ 语句?

我刚开始学习wxWidgets,我遇到了一组代码,如下所示:wxBEGIN_EVENT_TABLE(MyFrame,wxFrame)EVT_MENU(Minimal_Quit,MyFrame::OnQuit)EVT_MENU(Minimal_About,MyFrame::OnAbout)wxEND_EVENT_TABLE()wxWidgets称之为“事件表”。我想知道这是什么类型的语句,因为我已经阅读了几个C++教程,但我还没有看到这样的语句。它们看起来像函数调用,但没有分号。我知道它与MACROS有关,但我真的不明白它是如何工作的。这种语句是MACROS的东西,还是我还没有遇到过的C

c++ - switch 语句和对象隐式 int 转换

在C++中,直接在隐式转换为int的对象上使用switch语句是否合法/正确?而不是使用返回对象标记的方法。classAction{public:enumEType{action1,action2,action3};operatorint()const{returnmType;}private:ETypemType;/*...*/}intmain(){Actiona=/*...*/switch(a){caseAction::EType::action1:/*...*/break;caseAction::EType::action2:/*...*/}} 最佳答

用于生成部分 switch 语句的 C++ 模板?

是否可以写一个模板Foo这样:Foo给予switch(x){case1:return1;break;case2:return4;break;}同时Foo给予switch(x){case1:return1;break;case2:return4;break;case3:return9;break;}?谢谢!编辑:将上面的代码更改为returnsquare,正如许多人猜测的那样(我问得不好) 最佳答案 是的,制作一个带有超大主开关的模板,并希望/帮助优化器将其变成一个小开关。请参阅我对您其他问题的回答Runtimetypeswitchf

c++ - 是否有任何编译器或选项可以触发对无意义和错误的 switch 语句的警告?

给定以下代码:booldoGoodThing;switch(some_variable){case1:case2:doGoodThing=true;default:doGoodThing=false;}最新的gcc版本足够智能,可以检测变量何时被分配但仍未使用,等等。是否有任何编译器或标志可以触发警告,指出整个开关对于这样的代码没有任何意义?更新:问题不在于doGoodThing变量。这是关于一个愚蠢的switch语句,没有多大意义。更新2:通过“欺骗”选民,在将其标记为重复之前-再读一遍问题。这不是关于在“case”之后缺少“break”语句的警告。这是关于死代码、逻辑错误、编译器对

c++ - 为什么不能在返回语句中使用 "<<"运算符?

例如:std::stringstreamformatMemUsage(...){std::stringstreamss......returnss导致错误nosuitableuser-definedconversionfrom"std::basic_ostream>"to"std::stringstream"exists.我可以将返回语句分成2个语句ss然后错误消失了-为什么?(使用MSVC++2010) 最佳答案 因为您要返回最后评估的语句。考虑一下这实际上在做什么:returnss相当于:returnoperatoroperat