C++ 当循环不断重复时执行

C++ 当循环不断重复时执行,c++,do-while,C++,Do While,尝试测试输入是“TF”还是“MC”。尽管参数写为:line!=“TF”| |行!=“MC” 即使输入TF或MC,也不理解循环是如何重复的。我还验证了tranform方法正在使字符串大写 do { cout << "\nEnter the Question type (TF) for True/False or (MC) for Multiple Choice:\n"; getline(cin, line); transform(line.begin(), l

尝试测试输入是“TF”还是“MC”。尽管参数写为:line!=“TF”| |行!=“MC”

即使输入TF或MC,也不理解循环是如何重复的。我还验证了tranform方法正在使字符串大写

do {

    cout << "\nEnter the Question type (TF) for True/False or (MC) for Multiple Choice:\n";
    getline(cin, line);
    transform(line.begin(), line.end(), line.begin(), ::toupper);

    } while (line != "TF" || line != "MC");
do{
cout

line!=“TF”

将设置为true,这将使OR语句为true

(因此,即使此人键入了有效的答案,也要重复该过程)

您要查找的是检查答案是否不是两个选项中的任何一个,可以按如下方式进行检查:

(line!=“TF”和&line!=“MC”)

反之亦然。也就是说,检查此人键入的答案是否有效,并在答案无效时不断重复:

while(!(line==“TF”| line==“MC”)


正如注释中所述,这两个语句都是等效的。

这可能有些过分,但它确实解释了OR、AND和NOT运算符之间的关系:

line!=“TF”| line!=“MC”
始终是真的。也许您希望
line!=“TF”&&line!=“MC”
这可能会有所帮助