我正在尝试制作if else
语句,但每次输入代码时都会出现错误。其中一个人说IF was not declared in this scope
,我不知道如何宣布它和所有这一切。它还说在我的其他陈述之前没有}
,但显然有;请帮忙。
这是守则:
#include <iostream>
#include <string>
using namespace std;
int main() {
string UserInput;
cin >> UserInput;
int x;
x = 1;
If (UserInput = x);
{
cout << "Type A Word and Press enter";
}
else
{
Cout << "NOT A USESBLE NUMBER";
}
cin.clear();
cin.ignore(255, '\n');
cin.get();
return 0;
}
答案 0 :(得分:12)
If (UserInput = x);
关键字,就像C ++中的变量一样,区分大小写,这意味着每次编写时它们都要拼写并具有相同的大小写。在您的代码中,您的IF
将以未声明/未定义的形式出现,因为编译器认为您将其用作尚未定义的变量或函数。 if语句用小写编写。所以结果应该是这样的:
if (UserInput = x);
但我们还没有完成。我们这里还有一些问题。 if语句中的单个等号被解释为赋值(它不会抛出错误,因为从技术上讲它是正确的语法,但很多人通过使用单个等号而不是双等号来犯这个错误)。如果您打算比较而不是赋值,则正确的语法将是双等号。
if (UserInput == x);
注意:此代码仍然不正确,因为您要将字符串与数字进行比较。当您执行cin >> UserInput
时,用户的文本将转换为变量UserInput
的字符串,因此它永远不会是像x
这样的整数,分配数字1。换句话说,这个if
每次都会失败,因为字符串不是整数。相反,我们应该使用if (UserInput == "1")
将它与1作为字符串文字进行比较。
if (UserInput == "1");
最后的分号不应该在那里。这不是声明的结尾,只是行的结尾。 if语句仍然需要跟随它的一行代码(可选地,如果省略括号),或者包含多行代码的两个大括号。
if (UserInput == "1")
{
/* ... */
Cout >> "NOT A USESBLE NUMBER";
}
Cout
应该是完全小写的,因为它是以小写形式定义的。
在查看您的代码后,我认为您的意图是这样的:
#include <iostream>
#include <string>
using namespace std;
int main() {
string UserInput;
cin >> UserInput;
if (UserInput == "1") {
cout << "Type A Word and Press enter";
}
else {
cout << "NOT A USESBLE NUMBER";
}
cin.clear();
cin.ignore(255, '\n');
cin.get();
// "return 0" is implicit.
}
答案 1 :(得分:7)
您的代码不正确,首先您使用的是大写字母I和第二个,您在行尾有一个分号,第三个等号有2个等号
int x;
x=1;
If (UserInput = x);
应该是
std::string x("1");
if (UserInput == x)
答案 2 :(得分:3)
如果需要在C中小写。
答案 3 :(得分:0)
std::string x='1';
if (UserInput==x)
{
cout << "Type A Word and Press enter";
} else
{
cout << "NOT A USESBLE NUMBER";//Cout should be cout
}