我是C ++的新手。我的目标是写下以下逻辑:
if a = yes then print "ok", else return 0
到目前为止,这是我的代码:
int a;
cin>>a;
if (a = "Yes") { // Error right here
cout<< "ok"; << endl;
}else{
return 0;
}
答案 0 :(得分:0)
此代码中存在多个错误。
您需要在您的条件下使用比较运算符。这用双等号“==”表示。您的代码使用赋值“=”,它尝试将值“Yes”赋给变量a。这是C / C ++中的常见错误,因此每当您比较事物时都需要小心。
另一个错误是您已将变量a声明为整数,因此当您尝试编译时会出现类型不匹配错误,因为“是”是一个字符串。
答案 1 :(得分:0)
首先,您希望您的计划做什么?
您需要区分赋值和等于运算符。 请注意,在继续执行条件语句之前,您需要先了解基础知识。
合理的计划应该是这样的:
int a;
cin>>a;
if (a == 5) { // 5 is an integer
cout<< "You entered 5!" << endl; // no semicolon after "
}
return 0; // must be out of the else statement
答案 2 :(得分:0)
=
分配内容。
使用==
进行比较,但是您要将int
与字符串进行比较。
如果您不小心,则在处理字符串时将char *的地址与数字进行比较。
请改用std::string
。
#include <string>
//.... some context I presume
std::string a;
cin >> a;
if (a == "Yes") { // Error right here
cout<< "ok"; << endl;
}else{
return 0;
}
答案 3 :(得分:-2)
您的代码在数据类型方面不正确。你有一个int类型的变量'a',你要比较字符串“yes”。尝试从逻辑的角度来看待它;你可以比较:
在您的情况下,您将输入的数字(假设为5)与单词“是”进行比较。当您尝试为var a输入一个字母时,您将收到编译错误。因此,只需更改以下内容:
string a;
代码的另一个问题是当if-then循环检查条件时;比较运算符是彼此相邻的2个等号,而不是单个等号。单个等号将右侧的项目分配给左侧的项目。例如,在:
int num = 5;
变量num被赋值为5.但是你想进行比较,而不是将变量分配给它自己的条件!
您的循环始终为true,因为您将变量设置为它应该满足的条件。您还需要执行以下操作:
if (a == "yes")
将var a中存储的值与==。
右侧的值进行比较只是一些建议,我建议你在c ++上找一些好书。在线搜索。您还可以参加edx,课程记录等在线编程课程....在线还有很多其他免费学习资源可供您使用。您可能还想深入了解一种更简单的编程语言;我会建议刮擦。它为您提供了一个关于编程的基本概念,可以在不到一周的时间内完成。
**请注意,我觉得这是最简单的方法;但是,您也可以将a的类型设置为char,接受输入,然后将其转换回字符串。祝你好运!