c++ - C++ 嵌套 if 语句,基本货币兑换
问题描述
我的 if 语句有一个简单的 C++ 问题,程序将值作为初始 if 参数运行,而不是执行 else if。我还尝试编写代码,以便如果函数的结果等于 1,它将输入语法正确的语句,除了使用另一个 if 语句之外,还有更好的方法吗?
int main()
{
cout << "Please type out amount and currency type to convert to dollars.\n";
double val1;
string currency;
double result = 0;
cin >> val1 >> currency;
if (currency == "yen" || "y")
{
result = val1/100;
if (result == 1) {
cout << "You have " << val1 << "yen which equals \n"
<< result << ", dollar.";
}
else
cout << "You have " << val1 << "yen which equals \n"
<< result << ", dollars.";
}
else if (currency == "euros" || "e")
{
result = val1*1.25;
if (result == 1) {
cout << "You have " << val1 << "euros which equals \n"
<< result << ", dollar.";
}
else
cout << "You have " << val1 << "euros which equals \n"
<< result << ", dollars.";
}
else if (currency == "pounds" || "p")
{
{
result = val1 *1.2;
if (result == 1) {
cout << "You have " << val1 << "pounds which equals \n"
<< result << ", dollar.";
}
else
cout << "You have " << val1 << "pounds which equals \n"
<< result << ", dollars.";
}
}
else
cout << "I didn't understand, please try again.\n";
}
解决方案
当您输入 时if (currency == "yen" || "y")
,您可能希望它的意思是“如果currency
等于"yen"
或等于"y"
,做某事”。
但是,这不是您的 if 语句实际执行的操作。if 语句
if (currency == "yen" || "y")
首先测试字符串currency
是否等于"yen"
,如果不等于,它会自行评估"y"
并检查它是否等于真。
在这种情况下,“y”将被截断为 a bool
,这意味着它将评估为true
(因为"y"
不等于0
)。结果,您的第一个 if 语句将始终评估为真!
要解决此问题,请将您的 if 语句替换为
if (currency == "yen" || currency == "y")
.
对于第二个问题,您可以使用条件运算符,其工作原理如下:
cout << "You have " << (val1 == 1 ? "thing" : "things") << endl;
这种情况下的条件是(val1 == 1 ? "thing" : "things")
。它检查 if ,如果是val1 == 1
则返回,否则返回。"thing"
true
"things"
推荐阅读
- javascript - 有没有办法在javascript中代理(拦截)类的所有方法?
- powershell - 在Powershell中切换用户“su -”等价物?
- postgresql - pg_restore: [archiver] 输入文件似乎不是有效的存档
- amazon-s3 - s3fs 和 fsspec 版本的工作组合是什么?ImportError:无法从“fsspec.asyn”导入名称“maybe_sync”
- python - Tensorboard 上的指标名称
- sql - SQL 无效标识符和模糊定义的别名
- android - 缺少 gradle 包来运行 Shared Preferences 应用程序
- java - BFS 或 DFS 是吃豆人女士的有效搜索算法吗
- redux - Normalizr to redux store - 多个 API 请求的最佳实践
- python - Spark 在 Scala 中打印我的 DataFrame 的形状