在我正在研究的一个例子中,我有代码来挑选“a”到“z”之间的元音。它使用 switch 语句代替单独的大小写,字符值共享相同的大小写。据我所知,所涉及的表达即
***(letter * (letter >= 'a' && letter <= 'z'))***
评估为真或假并转换为整数(1和0),其中它落入“案例0:”(0显然为假)以处理结果是否为假。任何人都可以解释该语句涉及的转换过程的表达式吗?特别是逻辑表达式乘法背后的推理。这是我的示例代码:
char letter(0);
cout << endl
<< "Enter a small letter: ";
cin >> letter;
switch(letter * (letter >= 'a' && letter <= 'z'))
{
case 'a': case 'e': case 'i': case 'o': case 'u':
cout << endl << "You entered a vowel.";
break;
case 0:
cout << endl << "That is not a small letter.";
break;
default: cout << endl << "You entered a consonant.";
}
编辑:所有伟大的答案家伙。清理了很多。再次感谢您的输入