gpt4 book ai didi

c++ - 关于 C++ while 循环的语法混淆

转载 作者:行者123 更新时间:2023-12-05 08:29:43 24 4
gpt4 key购买 nike

我最近开始学习 C++,我有一个问题是关于我们在声明不同类型的变量时的准确性的讲座中给出的练习的语法,在本例中为 float

#include <iostream>
using namespace std ;

int main()
{
// Accuracy test with float
float eps_f = 1.0 ;
while (float(1.0 + eps_f) != 1.0)
eps_f /= 2.0 ;
cout << "Resolving capacity float approximately: " << 2*eps_f << endl ;

// Accuracy test with double
double eps_d = 1.0 ;
while (1.0 + eps_d != 1.0)
eps_d /= 2.0 ;
cout << "Resolving capacity double approximately : " << 2*eps_d << endl ;
}

所以我不明白的是 while 在这里的意义是什么?发生了什么事?

最佳答案

在 C++ 中,缩进不会影响程序的流程,但会影响可读性。

这可以更好地写成:

#include <iostream>
using namespace std ;

int main()
{
// Accuracy test with float
float eps_f = 1.0 ;
while (float(1.0 + eps_f) != 1.0)
{
eps_f /= 2.0 ;
}
cout << "Resolving capacity float approximately: " << 2*eps_f << endl ;

// Accuracy test with double
double eps_d = 1.0 ;
while (1.0 + eps_d != 1.0)
{
eps_d /= 2.0 ;
}
cout << "Resolving capacity double approximately : " << 2*eps_d << endl ;
}

while 循环将对下一条语句进行操作。如果使用大括号,它将把大括号中的 block 视为一个语句。否则,它只会使用下一条语句。

以下片段是相同的:

while(1) 
{
do_stuff();
}
do_other_stuff();
while(1) do_stuff(); do_other_stuff();
while(1) 
do_stuff();
do_other_stuff();

关于c++ - 关于 C++ while 循环的语法混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68625502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com