while循环在if语句里面有相同的条件吗?

时间:2020-01-13 17:43:57

标签: c++ if-statement while-loop

一个经验丰富的程序员写了这样的东西:

#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语句。真的有必要吗?

3 个答案:

答案 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;
}
相关问题