布尔值始终为true

时间:2019-12-26 13:03:40

标签: c++

我正在编写一个简单的程序,但是有一个问题,布尔值始终为true,我不知道会发生什么,我错过了什么还是什么?请帮助

firebaseApp.serverTimestamp

1 个答案:

答案 0 :(得分:3)

此:

('A','I','U','E','O','a','i','u','e','o')

不代表集合或您认为的任何集合。 这些','逗号)之间的所有内容都被视为表达式。该部分代码从左到右评估每个表达式,并返回最右边的评估。

在您的情况下:表达式'A'的值为'A''I'的值为'I',...,'e'的值为'e' 'o'的值为'o'。计算完每个表达式后,将返回值'o'。这就是为什么您的kar将始终与'o'进行比较的原因,并且此代码的​​行为与您的相同:

bool vokal = (kar == 'o');

您实际需要做的是分别将kar与这些字符中的每个字符进行比较(在您的情况下,使用OR('||')运算符):

bool vokal = (kar == 'A' || kar == 'I' || kar == 'U' || kar == 'E' || kar == 'O' 
           || kar == 'a' || kar == 'i' || kar == 'u' || kar == 'e' || kar =='o');