C++ C++,将if/else if更改为switch语句

C++ C++,将if/else if更改为switch语句,c++,if-statement,switch-statement,C++,If Statement,Switch Statement,C++问题-“编写一个程序,用学生父母的供款计算学生的总储蓄。学生父母同意根据学生使用下面给出的时间表储蓄的百分比,将学生的储蓄增加到学生的储蓄中”这是我用来计算家长供款的if/else if。我现在必须重新编写这个程序,除非使用switch语句。我不知道该怎么做。用户输入总收入和他决定存入的金额。(我的课程刚刚开始,所以我必须使用非常简单的流程来完成这项工作,谢谢)以下是第一个版本: percent_saved = money_saved / money_earned; //

C++问题-“编写一个程序,用学生父母的供款计算学生的总储蓄。学生父母同意根据学生使用下面给出的时间表储蓄的百分比,将学生的储蓄增加到学生的储蓄中”这是我用来计算家长供款的if/else if。我现在必须重新编写这个程序,除非使用switch语句。我不知道该怎么做。用户输入总收入和他决定存入的金额。(我的课程刚刚开始,所以我必须使用非常简单的流程来完成这项工作,谢谢)以下是第一个版本:

percent_saved = money_saved / money_earned;          // calculates the percent of how much was saved

if (percent_saved <.05)                              // this if/else if statement assigns the parents percentage of contribution to their students saving
{
    parents = .01;
}
else if (percent_saved >= .05 && percent_saved < .1)
{
    parents = .025;
}
else if (percent_saved >= .1 && percent_saved < .15)
{
    parents = .08;
}
else if (percent_saved >= .15 && percent_saved < .25)
{
    parents = .125;
}
else if (percent_saved >= .25 && percent_saved < .35)
{
    parents = .15;
}
else
{
    parents = .2;
}

parentsmoney = parents*money_earned;                 // using the correct percentage, this creates the amount of money parents will contribute
total_savings = parentsmoney + money_saved;          // this adds together the parent's contribution and the student's savings 
percent\u saved=钱存/钱赚;//计算已节省多少的百分比
如果(保存的百分比=.05和保存的百分比<.1)
{
父母=.025;
}
否则如果(保存的百分比>=.1和保存的百分比<.15)
{
父母=.08;
}
否则如果(保存百分比>=.15和保存百分比<.25)
{
父母=.125;
}
否则如果(保存百分比>=.25和保存百分比<.35)
{
父母=.15;
}
其他的
{
父母=.2;
}
parentsmoney=父母*挣得的钱;//使用正确的百分比,这就创造了父母将贡献的金额
储蓄总额=父母的钱+储蓄的钱;//这将家长的供款和学生的储蓄相加
在这种情况下不能(不应该)这样做:只对离散整数值有用。是的

无论如何,如果顺序颠倒,使测试缓慢进行,大约一半的条件可以从if表达式中删除

if (percent_saved >= .35) {
    parents = .2;
} else if (percent_saved >= .25) {
    parents = .15;
} // etc.

现在,如果要求使用“切换语句”(愚蠢的作业问题),那么首先考虑将浮点值归一化为“桶”,以使0.05=1,0.1=2,0.15=3,等等。然后在相关的情况下检查所得的整数(有一些情况是下降的),如链接问题…

所示。
int bucket = rint(percent_saved / 0.05);