C++控制循环

来源:百度知道 编辑:UC知道 时间:2024/05/29 00:08:59
#include<iostream>
using namespace std;
const double one=5000;
const double two=15000;
const double three=35000;
void main()
{
double Money;
cin>>Money;
if(Money<=one)cout<<"不用交所得税。"<<endl;
else if(Money<=two)cout<<"应缴纳:"<<(Money-one)*0.1<<endl;
else if(Money<=three)cout<<"应缴纳:"<<(two-one)*0.1+(Money-two)*0.15<<endl;
else cout<<"应缴纳:"<<(two-one)*0.1+(three-two)*0.15+(Money-three)*0.2<<endl;
}

请问如何把这个改成循环输入呀,并且当输入为负数或非数字时,循环结束
能不能解释下为什么要加if(cin.fail())
{break;}

double Money;
while(cin >> Money && Money >= 0){
if(cin.fail())
{break;}
if(Money<=one)cout<<"不用交所得税。"<<endl;
else if(Money<=two)cout<<"应缴纳:"<<(Money-one)*0.1<<endl;
else if(Money<=three)cout<<"应缴纳:"<<(two-one)*0.1+(Money-two)*0.15<<endl;
else cout<<"应缴纳:"<<(two-one)*0.1+(three-two)*0.15+(Money-three)*0.2<<endl;}