如何为变量赋值并在 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);
我正在用 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);