我是初学者学习C ++,我对这里出错的地方感到困惑。到目前为止,我有以下内容,但它没有认识到&&这个操作数。我将用什么代替&&?
我想要做的是编写一个程序,提示用户输入要混合的两种主要颜色的名称。我很感激任何建议。
谢谢。
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
int main()
{
//Declare string variables for colors to mix
string color;
string color2;
string red;
string yellow;
string blue;
//Output instructions for creating secondary color
cout<< " Enter first primary color to help create a secondary color.";
cout<< " Must be in lowercase letters. "<<endl;
cin>>color;
cout<< "Enter another primary color to help create a secondary color: ";
cout<< " Must be in lowercase letters. "<<endl;
cin>>color2;
//Create statements to help determine the results
if (red && yellow)
{cout<< " Your secondary color is Orange! ";
}
else if (red && blue)
{cout<< " Your secondary color is Purple! ";
}
else if (blue && yellow)
{cout<< " Your secondary color is Green! ";
}
else
{cout<< "Input is inaccurate. Please enter a different color. ";
}
return 0;
}
答案 0 :(得分:5)
像
这样的东西if (color == "red" && color2 == "yellow")
变量的名称不是字符串。
答案 1 :(得分:5)
if (red && yellow)
&&
询问每一方是否评估为真,如果是,则评估为真。
这意味着您的代码询问变量red
的计算结果是否为真,变量yellow
的计算结果为真。
但那些是字符串! (并在那个空的!)相反,你想比较输入的字符串,看看比较评估是否为真:
if (color1 == "red" && color2 == "yellow")
答案 2 :(得分:3)
当运算符的两边都是&&
个对象或可以转换为bool
的对象时,运算符bool
有效。因此,行
if (red && yellow)
在语法上是不正确的。
您可以使用以下代码在代码中正确表达您的意图:
if (color == "red" && color2 == "yellow" )
如果您将变量red
和yellow
的值定义为:
string red = "red";
string yellow = "yellow";
然后你也可以使用:
if (color == red && color2 == yellow )