草庐IT

while语句

全部标签

深入理解 Java 循环结构:while、do while、for 和 for-each 循环

Java循环循环可以执行一个代码块,只要达到指定的条件。循环很方便,因为它们节省时间,减少错误,并使代码更易读。JavaWhile循环while循环会循环执行一个代码块,只要指定的条件为真:语法while(condition){//要执行的代码块}在下面的示例中,只要变量(i)小于5,循环中的代码将一遍又一遍地运行:示例inti=0;while(i注意:不要忘记增加条件中使用的变量,否则循环永远不会结束!Do/While循环do/while循环是while循环的变体。此循环将在检查条件是否为真之前执行一次代码块,然后只要条件为真,它就会重复执行循环。语法do{//要执行的代码块}while(c

c++ - do...while() 重复最后一个字符串两次

以下代码将提供的字符串/行拆分为字符。为什么循环重复最后一个字符串两次?如何解决?#include#include#include#includeusingnamespacestd;intmain(){stringmain,sub;cout>sub;coutv(sub.begin(),sub.end());for(inti=0;i输入:helloworld期望的输出hellohelloworldworld实际输出:hellohelloworldworldworldworld我已经尽可能删除了与问题无关的元素 最佳答案 在最后一次运行

c++ - 可以重新排序的语句

假设我们有以下三个代码片段://bothaandbarenon-volatileintsa=123;b=456;//bothaandbarenon-volatileintsa=rand();b=rand();cout据我所知,(1)中的语句可以由编译器重新排序,而(2)(3)中的语句不能,因为这会改变程序的可观察行为。但是编译器如何知道当事情不是那么“明显”依赖时不能重新排序(像++a;b=a*2;显然是相关的),如(2)(3)?例如,也许像非constexpr函数调用这样的某些事情会阻止重新排序......? 最佳答案 管理重新排

c# - 关于 catch block 中 catch 语句顺序的问题 - 特定于编译器或语言标准?

我目前正在使用VisualStudioExpressC++2008,并且对catchblock排序有一些疑问。不幸的是,我在互联网上找不到答案,所以我向专家提出这些问题。我注意到除非将catch(...)放在catchblock的末尾,否则编译将失败并出现错误C2311。例如,以下将编译:catch(MyException){}catch(...){}而以下不会:catch(...){}catch(MyException){}一个。请问这是在C++语言标准中定义的,还是微软编译器严格的问题?C#和Java也有相同的规则吗?顺便说一句,我还尝试制作一个基类和一个派生类,并将基类的catc

c++ - 在一个语句中将一个值与所有数组元素进行比较

例如:if(value==array[size])//ifthevalue(unique)ispresentinanarraythendosomething这是否可以在一条语句中完成而无需调用函数或基本的for循环语句? 最佳答案 std::find可以在一条语句中完成,但它不像其他语言那样微不足道:(intarray[10];if(array+10!=find(array,array+10,7)){cout或用std::count:if(intn=count(array,array+10,7)){cout

c++ - 迭代而不产生 IF 语句的成本

我的问题是出于好奇,而不是是否有其他方法可以解决这个问题。这是一个奇怪/有趣的问题,所以请以开放的心态阅读它。让我们假设有一个游戏循环每帧都被调用。游戏循环依次通过无数的if语句调用多个函数。例如,如果用户将GUI设置为false,则不要刷新GUI,否则调用RefreshGui()。循环中还有许多其他if语句,如果它们为真,它们将调用各自的函数。有些是if/if-else.../else,在最坏的情况下成本更高。即使被调用的函数,如果if语句为真,也有逻辑。如果用户想要对所有对象进行光线拾取调用FunctionA(),如果用户想要对灯光进行光线拾取,则调用FunctionB(),...

c++ - 为什么某些 IDE 不缩进 switch 中的 case 语句?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Whydon'tpeopleindentC++accessspecifiers/casestatements?我有一个语法问题...不是关于如何,而是关于为什么。许多IDE,例如Eclipse和QtCreator会自动缩进一个switch,如下所示:DayrandomDay=getRandomDay();/*returns'enumDay'*/switch(randomDay){default:caseMonday:/*...*/break;caseTuesday:/*...*/break;/*...*/}我

c++ - 语句 "a class is an object even if not instantiated"是什么意思?

我是一名学习Ruby的C++程序员。在一本初学者书中,我读到:“一个类本身就是一个对象,即使您不直接实例化它也是如此。”我不知道怎么解释。 最佳答案 在C++中,除了typeid等,类没有语言可见的运行时表示。你可以说classFoo{};,但你不能说&Foo。(您可以获取typeinfo对象的typeid/地址,它是类对象的SCSS版本)。在Ruby中,类是对象。任何你能用一个对象做的事情,你都可以用一个类来做,因为它是一个对象。例如,在Ruby中,您可以foo.send(...)到任何对象foo。由于类是一个对象,因此您也可以使

c++ - 释放内存的时候一定要用IF语句吗?

这个问题在这里已经有了答案:IsitsafetodeleteaNULLpointer?(8个答案)关闭9年前。我正在尝试理解C++中的内存部分。在使用下面的代码生成输出后,我试图释放内存。问题:是否需要通过if语句释放内存?代码:intmain(){char*pc;int*pi;pc=newchar('a');pi=newint(8);cout我可以这样做吗?内部主要(){字符*个人计算机;整数*pi;pc=newchar('a');pi=newint(8);cout

c++ - 如何在 Postgresql for C++ 中准备语句和绑定(bind)参数

我是C++的新手,对pqxx库略知一二。我要实现的是准备语句和绑定(bind)参数。在PHP中,我习惯以如此简洁明了的方式执行此操作:$s=$db->prepare("SELECTidFROMmytableWHEREid=:id");$s->bindParam(':id',$id);$s->execute();或使用代币:$data=array();$data[]=1;$data[]=2;$s=$db->prepare("SELECTidFROMmytableWHEREid=?orid=?");$s->execute($data);我试图从pqxxdocumentation中逃脱如何实