一个经验丰富的程序员写了这样的东西:
#include <string>
using namespace std;
class Fraction
{
float nominator;
float denominator;
void load()
{
cin>>nominator; cin>>denominator;
if(denominator==0)
{
while(denominator==0)
{
cout<<"denominator can not be equal 0!"<<endl;
cin>>denominator;
}
}
}
};
我不知道为什么会有一个if语句。真的有必要吗?
答案 0 :(得分:4)
在此示例中,
while(denominator==0)
{
cout<<"denominator can not be equal 0!"<<endl;
cin>>denominator;
}
完全相同。
在您提供的上下文中,没有任何东西可以告诉我们为什么有人会将循环嵌套在无用的if
中,但是有人可以提出解释。在该代码的早期版本中,if
块中可能存在某些更改程序/功能行为的代码。
这也可能是一个无辜的错误。
斯特罗斯特鲁普的猫可能已经在键盘上走路。
答案 1 :(得分:0)
真的有必要吗?
不,没有必要。
所示的代码段等效于将if语句替换为所包含的循环语句的程序。
答案 2 :(得分:0)
通过此代码:
if(denominator==0)
{
while(denominator==0)
{
cout<<"denominator can not be equal 0!"<<endl;
cin>>denominator;
}
}
我认为if
仅用于教学目的,只是表明检查 if 条件后流量将如何流向while
。以及while loop
将会如何工作。
但是如果在这里并不是必需的。 此代码执行相同的操作:
while(denominator==0)
{
cout<<"denominator can not be equal 0!"<<endl;
cin>>denominator;
}