如何在C ++中的if / else语句中组合字符串?

时间:2018-01-31 19:46:29

标签: c++

我是初学者学习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;
    }

3 个答案:

答案 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" )

如果您将变量redyellow的值定义为:

    string red = "red";
    string yellow = "yellow";

然后你也可以使用:

    if (color == red && color2 == yellow )