需要帮助了解如何使用switch语句

时间:2016-02-28 03:26:07

标签: c++ switch-statement

#include <iostream>
using namespace std;

int main()
{
  int i = 0;
  do {
    switch (i) {
      case 1:
        i++;
        break;
      case 4:
      case 8:
        i = i+ 2;
        break;
      default:
        cout << i << endl;
        break;
    }
    i++;
  } while (i < 12);

  cout << i << endl;
  return 0;
}

为什么代码的最后一个输入打印出12?由于while语句,它不应该是11吗?

2 个答案:

答案 0 :(得分:0)

最后一个 cout&lt;&lt;在可以输出少于12的内容。 while循环将继续重复切换,直到变量为12或更多。

答案 1 :(得分:0)

如果您不想打印12并退出while循环,请更改以下代码。考虑一下这种变化,并试着理解为什么会这样。

#include <iostream>
using namespace std;

int main()
{
int i = 0;
do {
switch (i) {
  case 1:
    i++;
    break;
  case 4:
  case 8:
    i = i+ 2;
    break;
  default:
    cout << i << endl;
    break;
}
i++;
} while (i < 11);

cout << i << endl;
return 0;
}

根据您的代码,这种情况正在发生,因为条件检查i == 11的{​​{1}}将因11&lt; 12而返回true。因为程序没有退出while循环,循环将再次运行i = 12并打印12。