【问题标题】:How to assign a value to a variable and also check its value in a while loop?如何为变量赋值并在while循环中检查其值?
【发布时间】: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 代码中的操作数来衡量短。了解源代码如何影响现代系统的性能需要深入了解编译器、处理器和其他技术。当你开发它时,更喜欢编写清晰的代码而不是带有“聪明技巧”的代码。

标签: c loops if-statement variable-assignment


【解决方案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循环外声明变量。

      【讨论】:

        猜你喜欢
        • 2011-07-12
        • 1970-01-01
        • 2013-05-19
        • 2019-06-09
        • 1970-01-01
        • 2016-01-13
        • 2013-11-15
        • 2016-04-28
        • 2010-10-07
        相关资源
        最近更新 更多