while循环如何在没有代码块的情况下工作,它不应该只适用于花括号吗?

我知道 while 循环的主体部分有两个花括号{ }。而且我知道 while 循环是如何工作的。但是当我在看一本关于 C++ 的书时,我发现了这段代码:

#include <iostream>
int main()
{
    int sum = 0, value = 0;
    // read until end-of-file, calculating a running total of all values read
    while (std::cin >> value)
        sum += value;   // equivalent to sum = sum + value
    std::cout << "Sum is: " << sum << std::endl;
    return 0;
}

但是没有大括号{ },这些代码的工作方式与:

#include <iostream>
int main()
{
    int sum = 0, value = 0;
    // read until end-of-file, calculating a running total of all values read
    while (std::cin >> value){
        sum += value;   // equivalent to sum = sum + value
    }
    std::cout << "Sum is: " << sum << std::endl;
    return 0;
}

那么当我{ }While 循环中省略花括号时怎么可能,当它在while 循环中省略花括号时它是如何工作的呢?

回答

所述while的语法如下的形式(简化,检查链接的详细信息):

while ( condition ) statement

因此,我们需要在条件部分之后为其提供一条语句。

花括号表示复合语句(又名block , block statement)。它是一组零个或多个语句,编译器将其视为单个语句。

如果您不需要复合语句,则使用表达式语句(又名one-liner)。我们用分号终止表达式语句;,而块语句通过关闭大括号终止。

在示例中,我们可以使用表达式语句:

while (std::cin >> vInside curly braces wealue)
        sum += value; 

在某些情况下,即使我们只使用表达式语句,也需要使用花括号来指定程序中的逻辑流程。此外,有些人认为每次都经常使用花括号明确表示边界是一种很好的做法


以上是while循环如何在没有代码块的情况下工作,它不应该只适用于花括号吗?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>