If/else If总是转到else语句
If/else if always goes to else statement
我试图使一个功能,确定佣金基于用户输入的金额。它接受用户输入的double,并使用它来确定它用于哪个方程。但是我写的代码总是转到else语句,我不确定我的条件出了什么问题。
double calculate(double s)
{
double c;
if (s > 300,000)
{
c = 25,000 + (0.15 * (s-300,000));
cout << "went to if" << endl;
return c;
}
else if (300,000 > s && s > 100,000)
{
c = 5,000 + (0.10 * (s-100,000));
cout << "went to else if" << endl;
return c;
}
else
{
c = 0.05 * s;
cout << "went to else" << endl;
return c;
}
}
s > 300,000
是一个逗号表达式,相当于(s > 300),000
。逗号表达式的值是列表中最后一个的值,这里是000
。转换为bool
时为false
可以写成
if( s > 300'000 )
或者,如果编译器不支持这种新奇的符号,就直接使用
if( s > 300000 )
或者你可以定义
double const k = 1000;
和写
if( s > 300*k )
对于25 000、10 000和5000字面值也类似。
数字300,000
在
if (s > 300,000)
实际上是,
-运算符的一种奇怪用法,它被解析为
if ((s > 300),(000))
,结果始终是false
。相反,试着
if (s > 300000)
(else if (300,000 > s && s > 100,000)
和其他几个地方也是如此)
300,000
不是正确的double
文字,而是应用逗号操作符并以值0
结束。
对于双字面值使用.
: 300.000
或者对于千位不使用分隔符:300000
相关文章:
- 我的简单if-else语句是如何无法访问的代码
- 如何删除peer if else分支中的冗长句子
- 我似乎对if/else的基本语句有问题:/
- 使用if-else将数字转换为单词
- 为什么这个案例陈述需要一个"if else"而不仅仅是一个"if"?
- C++ If/Else 语句被跳过
- 如果条件不相关,我应该更喜欢两个 if 语句而不是 if-else 语句吗?
- 如何将 if else 语句重写为 switch 语句
- 在 C++ 中的 if-else if- else 语句期间更改变量
- 为什么我的 if else 语句不起作用并从数组中输出正确的索引?
- 我的 If Else 语句无法在向量 (C++) 中提供最大值
- 具有嵌套 if-else 的循环的时间复杂度
- 为什么无论输入如何,所有 if-else 语句都会打印?
- 简化对两个布尔值的 4 个 if/else 检查
- 如何在C++中创建 if else 循环而不是多个嵌套?
- 为什么切换 if else 语句的顺序会导致错误?
- 如何使用 if else 语句
- if/else 语句输出由于加号或减号而未显示正确的消息
- 如何解释 #if/#else 位域?(VC++菜鸟)
- if-else 语句仅按特定顺序工作,我不知道为什么