#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
吗?
答案 0 :(得分:0)
最后一个 cout&lt;&lt;在
答案 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。