我将以下循环编写为我的CS作业程序的一部分,但无论输入如何,程序都会保持循环到这一点。我做错了什么?
#include <iostream>
using namespace std;
char choice;
do
{
cout << "Type 'c' for characters or type 'n' for numbers: ";
cin >> choice;
}while (choice != 'c' || choice != 'n');
答案 0 :(得分:3)
只要do
表达式为while
,就会循环while
- true
语句。
您的while
表达式
choice != 'c' || choice != 'n'
在普通英语中,该表达意味着
choice
不是'c'
或choice
不是'n'
逻辑上,该声明始终为真。 choice
始终不是其中之一。
在英语和C ++中,您可能希望在该表达式中使用and
/ &&
。