【发布时间】:2021-05-04 22:57:38
【问题描述】:
我正在编写一个代码来计算我在 C++ 中的课堂作业的通行费。代码如下所示。我的问题是我只想执行计算,即toll = vRate * distance 如果它满足任何一种情况。如果输入无效,默认只显示“无效输入”,无需计算。例如:
if !(default),
toll = vRate * distance;
cout << "RM" <<toll << endl;
但是,我知道这行不通。因此,有什么想法可以修改代码以使其清晰明了吗?提前谢谢你。
#include <iostream>
using namespace std;
int main()
{
char vCode;
double vRate; // Toll rate for the vehicle
double toll, distance;
cout << "Enter vehicle code: " << endl;
cin >> vCode; // C-Car, B-Bus, T-Truck, M-Motorbike
cout << "Enter the distance travelled by the vehicle (in km): " << endl;
cin >> distance;
switch(vCode)
{
case 'C' : cout << "vRate = 50%" << endl;
vRate = 0.5;
break;
case 'B' : cout << "vRate = 85%" << endl;
vRate = 0.85;
break;
case 'T' : cout << "vRate = 100%" << endl;
vRate = 1.00;
break;
case 'M' : cout << "Free toll" << endl;
vRate = 0.00;
break;
default : cout << "Invalid Vehicle Code" << endl;
}
toll = vRate * distance;
cout << "RM" <<toll << endl;
return 0;
}
【问题讨论】:
-
switch 语句块以右大括号 (
}) 结束。恐怕我没有完全理解您的问题,请您详细说明一下吗? -
花几天时间阅读有关 C++ 的内容:阅读 a good C++ programming book 然后阅读 this C++ reference 然后阅读 C++ 编译器(例如 GCC...,用作
g++ -Wall -Wextra -g)和调试器的文档(例如GDB...) -
“如何在 C++ 中的 switch 语句之后编写 if 语句?” 你可以编写
switch (vCode) { /* ... */ } if (/* condition */) { /* ... */ } -
在
default:中使用return 语句。什么可以更容易?或者您可以在切换后double vRate = -1;和if (vRate >= 0)。 -
感谢您帮助我澄清问题。
标签: c++ if-statement switch-statement