【发布时间】:2018-08-11 01:16:01
【问题描述】:
#include <iostream>
#include <string>
int main()
{
int hun;
std::cout << "Please pick a number between 1 and 100 \n";
std::cin >> hun;
if (hun > 50)
{
std::cout << "Your number is greater than 50. ";
}
if (hun < 50)
{
std::cout << "Your number is less than 50. ";
}
if (hun > 100)
{
std::cout << "Pick a number LESS than 100. ";
}
else { std::cout << "Your number is equal to 50. "; }
return 0;
}
如果我在没有以下条件的情况下运行它:
std::cout << "Pick a number LESS than 100. ";
然后程序按预期运行。但是,如果我包含它,它就不起作用。例如,如果我输入“13”,我会同时收到消息“您的号码小于 50,并且您的号码等于 50”??如果我的 IF 语句已经满足,我不明白为什么它仍在执行 else 语句。仅当我删除第三个 IF 语句时,这才不是问题。
我不明白为什么只是那条线搞砸了。我似乎把所有东西都写对了,而且我没有忘记大括号。那么为什么会这样呢?
我确定这是一个简单的错误。这是我编码的第一周,我是在没有外界帮助的情况下自己完成的,所以我没有人可以问这样的愚蠢问题。
当我在这里时,当用户输入一个单词或一个字母时,如何让程序说出类似“您输入的响应无效。”这样的话?我想过做类似的事情:
int word;
word = 1-100;
if (hun = word) or (hun != int?)
(但这只会从 1 中减去 100,给我 -99 而不是范围,我真的不知道从哪里开始)
【问题讨论】:
-
如果编译器生成的代码同时执行 if 和 else 语句 - 更改编译器。
-
@scopchanov 我在 powershell 中得到了这个结果,你建议我改用什么?
-
这表达了我对任何体面的当代编译器都会做你在标题中描述的事情的怀疑。
标签: c++ if-statement range