如何为变量赋值并在while循环中检查其值?
Posted
技术标签:
【中文标题】如何为变量赋值并在while循环中检查其值?【英文标题】:How to assign a value to a variable and also check its value in a while loop? 【发布时间】:2021-10-22 22:52:57 【问题描述】:我正在用 C 语言做一个时间要求严格的应用程序。我想给一个变量赋值并在一个 while 循环中同时检查它的值,以便稍后在这个循环的主体中重用它。分配给变量的值由需要一些时间运行的函数返回。我知道我可以这样做:
while (function_returning_int() <= foo)
bar(function_returning_int());
问题是这涉及到调用同一个函数两次。我尝试这样做:
while ((int thing = function_returning_int()) <= foo)
bar(thing);
它给了我一个错误。我不明白为什么赋值运算符 (=
) 返回赋值。如何在 while 循环中为变量赋值并同时检查其值?
【问题讨论】:
C 代码短并不意味着执行速度更快,无论是用源代码的字符、源代码的行数还是 C 代码中的操作数来衡量短。了解源代码如何影响现代系统的性能需要深入了解编译器、处理器和其他技术。当你开发它时,更喜欢编写清晰的代码而不是带有“聪明技巧”的代码。 【参考方案1】:你已经接近了。你只需要在循环外声明变量:
int thing;
while (( thing = function_returning_int()) <= foo)
bar(thing);
【讨论】:
【参考方案2】:您必须将结果存储在变量中。为了限制它的范围,可以将 c99 语法用于 'for' 循环。
for (int val; ( val = function_returning_int()) <= foo;)
bar(val);
【讨论】:
【参考方案3】:试试这个。解决方案是将循环内声明的变量赋值给另一个局部变量。然后在main方法中使用变量。在while循环外声明变量。
【讨论】:
以上是关于如何为变量赋值并在while循环中检查其值?的主要内容,如果未能解决你的问题,请参考以下文章