現在、私は地元の大学でC++コースを受講しており、デバッグの割り当てを受けています。この割り当ての指示では、このコードで本当に間違っているのは、82〜89行目のif-else-ifステートメントの条件が重複しているということですが、別の方法ではそれらの条件が同じでなくても同じ結果が得られます...ヒントなどがあれば幸いです!If-Elseネストは冗長ですか?
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;
const int BASE_COST = 10;
const int LOW_LIMIT = 20;
const int MID_LIMIT = 40;
const int HIGH_LIMIT = 60;
const double LOW_CHECKS = .10;
const double MIDLOW_CHECKS = .08;
const double MIDHIGH_CHECKS = .06;
const double HIGH_CHECKS = .04;
int main()
{
int numOfChecks;
double multiplierValue;
double totalFee;
cout << fixed << showpoint;
cout << setprecision(2);
cout << "Please enter the number of checks you used this month: ";
cin >> numOfChecks;
if(numOfChecks < 0)
{
cout << "Number of checks can't be negative. Program ends.\n";
exit(1); //terminate the program with error code 1
}
//the following line runs only if the program did not terminate, so start over if-else
if(numOfChecks < LOW_LIMIT)
multiplierValue = LOW_CHECKS;
else if(numOfChecks < MID_LIMIT)
multiplierValue = MIDLOW_CHECKS;
else if(numOfChecks >= MID_LIMIT && numOfChecks < HIGH_LIMIT)
multiplierValue = MIDHIGH_CHECKS;
else if (numOfChecks >= HIGH_LIMIT)
multiplierValue = HIGH_CHECKS;
totalFee = BASE_COST + numOfChecks * multiplierValue;
cout << "Your total for this month is $" << totalFee;
_getch();
return 0;
}
'のif-else-場合にネストライン82-89上の文はredundant' A)私たちは、私が/他 – Borgleader
が考えてみた場合に任意のネストされたを参照してくださいいけない)b)の49行の長cはスニペットという、行番号を持っていけないされています'if' /' else'ラダーの最後の条件です。以前の条件に基づいて、 'numOfChecks'の値が実行されてそのポイントに達することについて、あなたは何を結論づけることができますか? –
元のコードには実際のコードよりも上の指示がありましたが、ここに投稿する際にはそれを取りました。これは、おそらくその行がそれよりも小さい理由です。しかし、入れ子のif/elseについては、 if/else-if文をコードの最後の近くに置いてください。 –