int a = (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')是啥意思

今天在菜鸟上看到这个例子
图片说明
其中
isLowercaseVowel = (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u');这个语法不知道是什么意思

||是或者的意思。(c == 'a'||c == 'e' || c == 'i' || c == 'o' || c == 'u')六个判断语句中,只要有一个成立,这个表达式即为真,值就为1,然后赋给isLowercaseVowel。如果都不成立,则表达式为假,值为0赋给isLowercaseVowel。

A==B
A || B
A = B
这三种语法你哪个不懂

isLowercaseVowel = (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u');
// 换个写法,
if(c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u'){
isLowercaseVowel = true;
}else{
isLowercaseVowel =false;
}

有人评论说是误导,这里在追加一个常识
true = 1 and false = 0。

(c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') 这句话最后值是1或者0;
相当于bool 类型判断

判断字符C是不是小写的元音字母‘a’,'e','i','o',
'u'中的一个:如果是返回bool 类型的True,强制转换成整数1赋给int类型的变量a;否则返回bool 类型的False,强制转换成整数0赋给int类型的变量a