如何为变量赋值并在 while 循环中检查其值?

How to assign a value to a variable and also check its value in a while loop?

我正在用 C 语言做一个时间关键的应用程序。我想给一个变量赋值,同时在 while 循环中检查它的值,以便稍后在此循环体中重用它。分配给变量的值由函数返回,该函数需要花费一些时间 运行。我知道我可以做这样的事情:

while (function_returning_int() <= foo) {
    bar(function_returning_int());
}

问题是这涉及调用同一个函数两次。我试着这样做:

while ((int thing = function_returning_int()) <= foo) {
    bar(thing);
}

它给我一个错误。我不明白为什么赋值运算符 (=) returns 赋值。如何在 while 循环中同时为变量赋值并检查其值?

你很接近。您只需要在循环外声明变量:

int thing;
while (( thing = function_returning_int()) <= foo) {
    bar(thing);
}

试试这个。解决方案是将在循环内声明的变量的值分配给另一个局部 variable.and 然后在 main method.declare 中使用变量 while 循环外的变量。

您必须将结果存储在变量中。要限制其范围,可以使用 'for' 循环的 c99 语法。

for (int val; ( val = function_returning_int()) <= foo;)
    bar(val);