我正在尝试使用 do while 循环来评估帐号。有效的帐号必须有 5 位数字,并以字母 R 或 B 开头,不区分大小写。
有效帐号示例: r90000 B10101 R88888 b77777
无效帐号示例: y90000 r888822
这是我创建的循环,我无法弄清楚我的参数有什么问题导致它一遍又一遍地重复,从不排除一个帐号。
char accountType;
int accountNum;
cout << "Please enter your account number." <<endl;
cout << ">> ";
cin >> accountType >> accountNum;
cout <<endl;
do
{
cout << "That is not a valid account number. Please enter your account number." <<endl;
cout << ">> ";
cin >> accountType >> accountNum;
cout <<endl;
}while ( (accountNum <= 9999) || (accountNum >= 100000) && (accountType != 'r') || (accountType != 'R') || (accountType != 'b') || (accountType != 'B') );
有什么想法吗?
最佳答案
重复循环的条件是任何:
-
accountNum <= 9999
-
accountNum >= 100000 && accountType != 'r'
-
accountType != 'R'
-
accountType != 'b'
-
accountType != 'B'
但是对于每个 字符,(3)、(4) 和(5) 中至少有两个为真,因此您将始终重复。
您需要循环 while 所有 accountType
检查失败或任何 accountNum
检查失败。也就是说,任何:
-
accountNum <= 9999
-
accountNum >= 100000
-
accountType != 'r' && accountType != 'R' && accountType != 'b' && accountType != 'B'
关于c++ - 构造 do while 循环来处理帐号不工作 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35691519/