私が取り組んでいる例では、「a」から「z」の間の母音を選択するコードがあります。個別の大文字小文字の代わりに、文字値が同じ大文字小文字を共有しているswitchステートメントを使用しています。私がこれまでに知っていることから、関係する表現はすなわち
***(letter * (letter >= 'a' && letter <= 'z'))***
trueまたはfalseに評価され、整数(1および0)に変換され、falseの場合に結果を処理するために「ケース0:」(0は明らかにfalse)になります。このステートメントに関連する変換プロセスへの表現を誰かが説明できますか?特に論理式の乗算の背後にある理由。これが私のサンプルコードです:
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.";
}
編集:すべての素晴らしい答えの人。たくさん片付けた。ご入力いただきありがとうございます