gpt4 book ai didi

c++ - 你如何结束 while 循环

转载 作者:行者123 更新时间:2023-11-27 22:48:38 26 4
gpt4 key购买 nike

我很难弄清楚如何在输入“NOMORE”一词后立即结束我的程序。
我研究过类似的线程,建议使用 “if, break” 或 “if, go to”。

虽然程序会在输入“NOMORE”后结束,但我想知道是否可以在不处理剩余模块(calcTicket、printInfo)的情况下结束。

int main ()
{
string licensePlate;
double vehicleSpeed = 0, zoneSpeed = 0, ticketPrice, base = 0, fee = 0;

while (licensePlate !="NOMORE")
{
getInfo(licensePlate, vehicleSpeed, zoneSpeed);
if (licensePlate == "NOMORE")
break;
calcTicket(vehicleSpeed, zoneSpeed, ticketPrice, base, fee);
printInfo(licensePlate, vehicleSpeed, zoneSpeed, ticketPrice);
}

return 0;
}

最佳答案

我假设,在询问是否“可能结束”时,您指的是终止循环,而不是程序。

如果您不能更改 getInfo(),我会将结构构造为 do-while 而不是 while

do
{
getInfo(licensePlate, vehicleSpeed, zoneSpeed);
if (licensePlate == "NOMORE") break;
calcTicket(vehicleSpeed, zoneSpeed, ticketPrice, base, fee);
printInfo(licensePlate, vehicleSpeed, zoneSpeed, ticketPrice);
} while (true);

前提是getInfo()至少需要调用一次,如果输入"NOMORE"则要求后续处理不会发生,否则循环永远持续下去。

如果您可以将 getInfo() 更改为返回 bool,则可以...

while (getInfo(licensePlate, vehicleSpeed, zoneSpeed))
{
calcTicket(vehicleSpeed, zoneSpeed, ticketPrice, base, fee);
printInfo(licensePlate, vehicleSpeed, zoneSpeed, ticketPrice);
}

假设 getInfo() 在看到 "NOMORE" 时返回 false,并且它适本地处理 vehicleSpeedzoneSpeed 无关。一个优点是,如果满足结束条件,getInfo() 实际上不需要读取这些值。显然 getInfo() 中会有一个测试,但调用者不需要关心它是如何完成的。

关于c++ - 你如何结束 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40210762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com