C++ 警告C6236:(| |)始终是非零常量
我有一个if语句似乎根本不起作用。我肯定这是一个愚蠢的错误,但我无法理解C++ 警告C6236:(| |)始终是非零常量,c++,visual-studio,if-statement,C++,Visual Studio,If Statement,我有一个if语句似乎根本不起作用。我肯定这是一个愚蠢的错误,但我无法理解 void convertTemp() { char choice; float userTemp; cout << "Input either F or C followed by a temperature and this program will convert it to the opposite." << endl; cout << "Examp
void convertTemp()
{
char choice;
float userTemp;
cout << "Input either F or C followed by a temperature and this program will convert it to the opposite." << endl;
cout << "Example: (F 260.8)" << endl;
cout << "Input: ";
cin >> choice; choice = toupper(choice); //Read in and convert user letter to capital
cin >> userTemp;
if (choice != 'F' || 'C')
{
cout << "Invalid format. Check your letter and temperature" << endl;
system("pause");
return;
}
这个简单的if语句旨在检查用户的字符输入是否不是“F”或“C”,然后返回一条错误消息并将其踢出函数。然而,无论输入如何,这个if语句总是返回true,我不知道为什么。任何帮助都将不胜感激
Visual studio正在向我发送此警告消息。我读过错误代码,但我很难理解它
警告C6236:| |始终是非零常量
您的if语句需要显式,if-choice!='F’| |‘C’不起作用
正确的if语句是if-choice!='F'&选择!='C’
编辑:作为一种解释,| |表示有两条语句正在求值。在英语中,该声明可理解为:
如果选项不是“F”或“C”
…这真的没有道理。您需要明确声明,如果choice等于这些值,您希望双方都进行计算
多亏了皮特·贝克尔,我复制并粘贴了你的文章,而没有深入挖掘你所做事情背后的逻辑。如果您试图将或与!=,其中一半几乎总是正确的。使用&&是您想要的运算符,这样您就可以检查选项是否不是C或F。您的if语句需要显式,if choice!='F’| |‘C’不起作用
正确的if语句是if-choice!='F'&选择!='C’
编辑:作为一种解释,| |表示有两条语句正在求值。在英语中,该声明可理解为:
如果选项不是“F”或“C”
…这真的没有道理。您需要明确声明,如果choice等于这些值,您希望双方都进行计算
多亏了皮特·贝克尔,我复制并粘贴了你的文章,而没有深入挖掘你所做事情背后的逻辑。如果您试图将或与!=,其中一半几乎总是正确的。使用&&是您想要的运算符,这样您就可以检查选项是否为C或F。已解决!这里的问题是,我在IF语句中只运行了一个比较。 选择F’| |‘C’。当时正在进行大胆的比较,但没有将“C”与任何东西进行比较 修复程序运行2次比较,如下所示。
选择F'&选择!='C’。我现在分别将“选择”与“F”和“C”进行比较 解决了!这里的问题是,我在IF语句中只运行了一个比较。 选择F’| |‘C’。当时正在进行大胆的比较,但没有将“C”与任何东西进行比较 修复程序运行2次比较,如下所示。
选择F'&选择!='C’。我现在分别将“选择”与“F”和“C”进行比较 如果选择F’| | C’-这并不像你想象的那样。在你正在使用的C++书籍中,它们如何显示if语句中的复合语句?如果你不使用一本书,C++不是猜测的语言,它会帮助你。你没有把它和选择进行比较。有几种语言,如果我们用速记英语的方式来表述复合词,也就是说,如果选择是“F”或“C”……,但是C++不是其中之一。你必须明确地完整地陈述复合条件的每一部分。@PaulMcKenzie听到了!感谢您帮助我修复此错误!如果选择F’| | C’-这并不像你想象的那样。在你正在使用的C++书籍中,它们如何显示if语句中的复合语句?如果你不使用一本书,C++不是猜测的语言,它会帮助你。你没有把它和选择进行比较。有几种语言,如果我们用速记英语的方式来表述复合词,也就是说,如果选择是“F”或“C”……,但是C++不是其中之一。你必须明确地完整地陈述复合条件的每一部分。@PaulMcKenzie听到了!感谢您帮助我修复此错误!你可能想查看@Pete Becker对我答案的编辑。选择背后的逻辑选择C'应该导致每次计算结果都为True,因为即使选择为F,后半部分仍然计算为C!=你可能想检查@Pete Becker对我答案的编辑。选择背后的逻辑选择C'应该导致每次计算结果都为True,因为即使选择为F,后半部分仍然计算为C!=F反之亦然。