C++ 为什么我的if语句输出的内容与第一个相同?
我这里有这个代码,我需要你的帮助C++ 为什么我的if语句输出的内容与第一个相同?,c++,C++,我这里有这个代码,我需要你的帮助 #include <iostream> int main() { char red = ' '; char Red = ' '; char blue = ' '; char yellow = ' '; char white = ' '; char color1 = ' '; char color2 = ' '; // INPUT std::cout << "
#include <iostream>
int main()
{
char red = ' ';
char Red = ' ';
char blue = ' ';
char yellow = ' ';
char white = ' ';
char color1 = ' ';
char color2 = ' ';
// INPUT
std::cout << "Enter a primary color (red, blue, yellow): ";
std::cin >> color1;
std::cout << std::endl; // For Mimir
std::cout << "Enter a different primary color (red, blue, yellow): ";
std::cin >> color2;
std::cout << std::endl; // For Mimir
if (color1 != red && color2 != blue) {
std::cout << "red and blue make purple" << std::endl;
return 0;
}
if (color1 != yellow && color2 != red) {
std::cout << "yellow and red make orange" << std::endl;
}
if (color1 != blue && color2 != yellow) {
std::cout << "yellow and blue make green" << std::endl;
}
if (color1 != Red && color2 != white) {
std::cout << "You entered invalid colors";
}
}
我做错了什么?请让我知道。您的颜色字符都是相同的,它们被初始化为空格字符“”,因此您放在控制台中的每个字母都将不同 还有两件重要的事情。 操作员
=
表示“不相等”,通过查看您的代码,您似乎需要在每个if
语句上使用=
运算符。所以你需要改变它们
其次,您应该使用else if语句,因为如果从第一个条件中删除return
,您将检查并打印每个if
语句。因此,您有两个选项:在每个if语句中插入return
,或者更好地使用else-if结构
如果您做了这些更改,您的代码将按您想要的方式工作。我的建议是先检查一到两个条件,然后在了解其他if结构和运算符后,可以进一步使用更多代码
我会给你一个简单的代码让你理解,然后试着自己做更多
char red = 'r';
char blue= 'b';
//INPUT FROM CONSOLE
if (color1 == red && color2 == blue) {
std::cout << "red and blue make purple" << std::endl;
}
else if (color1 == yellow && color2 == red){
std::cout << "yellow and red make orange" << std::endl;
}
charred='r';
炭蓝='b';
//控制台输入
如果(颜色1==红色和颜色2==蓝色){
std::coutchar red='';char blue='';等。所有“颜色”都初始化为一个空格。无论您输入什么,它都不会是一个空格,因此不等于任何“颜色”。还有if(color1!=红色和&color2!=蓝色)当color1
不是红色而color2
不是蓝色时,
为真。这是您想要的吗?您要求用户输入颜色(红色、蓝色、黄色)但是使用一个只能存储单个字符的char变量。你的紫色大小写与其他变量不同,它是唯一一个返回的字符。你知道吗?这会使程序提前离开我认为…你需要返回几步。读取单个输入。尝试回显它。如果你不能这样做,则程序的其余部分都将返回am是没有意义的。调试可以让你的生活变得更加轻松:我尝试了你所做的,但是所有的测试用例仍然显示“你输入了无效的颜色”作为它们的输出。我指的是应该说“红色和蓝色变成紫色”,“黄色和红色变成橙色”,“黄色和蓝色变成绿色”的测试用例变量color是一个字符。您从控制台输入什么?“red”或“r”?如果在color1中输入“red”,则在color1变量中输入“r”,在color2变量中输入“e”,这就是您的问题。
char red = 'r';
char blue= 'b';
//INPUT FROM CONSOLE
if (color1 == red && color2 == blue) {
std::cout << "red and blue make purple" << std::endl;
}
else if (color1 == yellow && color2 == red){
std::cout << "yellow and red make orange" << std::endl;
}