Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 警告C6236:(| |)始终是非零常量_C++_Visual Studio_If Statement - Fatal编程技术网

C++ 警告C6236:(| |)始终是非零常量

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

我有一个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 << "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反之亦然。