【问题标题】:Which example for a do-while loop?do-while 循环的哪个示例?
【发布时间】:2015-10-03 00:32:58
【问题描述】:

在 do-while 循环和 if else 语句中是否最适合在语句结束时更改变量值并使用它来创建您的 while 布尔表达式,或者最好设置您的 while 表达式始终为真,然后在 if else 语句中使用 break 语句。

为了澄清,这里有两种方法。

do
{
cout << "What is your choice?" << endl;
cin >> choice;

 if(choice == 1)
  {
    cout << "You chose 1" << endl;
    doWhileModifier = 1;
  } else {
    cout << "That's not a correct choice" << endl;
    doWhileModifier = 0;
  }
}
while (doWhileModifier == 0);

VS

do
{
cout << "What is your choice?" << endl;
cin >> choice;

 if(choice == 1)
  {
    cout << "You chose 1" << endl;
    break;
  } else {
    cout << "That's not a correct choice" << endl;
  }
}
while (true);

我最初是用第一种方式做的,但现在我倾向于第二种方式。

非常感谢您的输入!

【问题讨论】:

  • 为什么不直接使用while(choice != 1)
  • 我想我有点跳到将它们分支出来,而不是将它们全部包含在一个布尔表达式中。如果有多个选择,添加是否正确,例如:while(choice !=1 || choice !=2 || choice != 3)
  • 这取决于你的程序需要做什么。做事并不总是一种单一的包罗万象的方式。例如,如果您有一组全部有效的选项(假设 3 个有效选项),您可以这样做:do { ... } while( choice &lt; 0 || choice &gt; 3); 并在里面有一个 switch(choice) { ... }。这只是一种方法,还有其他方法。
  • 您介意看看这段代码,看看您认为哪三个最合适吗? pastebin.com/fhkhdPK6
  • 您可以按照我在第二条评论中针对您的第一个 do { ... } while ( ... ); 声明所说的操作。对于第二条语句:do { prompt, get input } while ( input &lt; 0 || input &gt; 10000 ); 更清晰。我建议你买一本关于一般编程的好书,如果你有这些问题,就从那里开始。我推荐编程:使用 C++ 的原则和实践(无论当前的最新版本是什么)。

标签: c++ logic do-while


【解决方案1】:

两个 do-while 循环都能完成工作,因此您希望在代码中使用哪个 do-while 循环完全取决于您的个人喜好。但是,如果您比我更喜欢第二个循环,我建议您只做一个 while 循环而不是 do-while 循环,因为它更简单、更易于阅读,并且无论如何它与 do-while 循环做同样的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 2015-07-03
    • 2016-02-21
    • 2020-11-26
    • 2015-02-16
    • 1970-01-01
    相关资源
    最近更新 更多