如何进行while循环但有更多条件C++

MJ *_*tos 4 c++ while-loop

cout << "Options:\n1: Change Name\n2: Change Password\n3: Change Address\n4: Withraw\n5: Deposit\nL: Log out\n>";
while (user_input2 != '1' && user_input2 != '2' && user_input2 != '3' && user_input2 != '4' && user_input2 != '5' && user_input2 != 'L')
{
    cout << "Invalid input";
}
Run Code Online (Sandbox Code Playgroud)

那么我该如何缩短 while 条件呢?

我试着做:

cout << "Options:\n1: Change Name\n2: Change Password\n3: Change Address\n4: Withraw\n5: Deposit\nL: Log out\n>";
while (user_input2 != '1','2','3','4','5','L')
{
    cout << "Invalid input";
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用。

编辑1:“我为我想做的事情添加了更多提示”

Mur*_*nik 9

您可以对to的范围使用<and>运算符,但您必须明确处理以下检查:'1''5''L'

while (user_input2 != 'L' && (user_input2 < '1' || user_input2 > '5'))
{
    cout << "Invalid input";
}
Run Code Online (Sandbox Code Playgroud)

  • @Patrick — 这里并不真正涉及字符编码。在 C++ 和 C 中,数字 `['0' .. '9']` 要求是连续且递增的。因此该测试对于编译器支持的每种字符编码都有效。 (3认同)