下列程序的输出结果是()
#include <iostream>
using namespace std;
int main(void) {
int x = 1, i = 1;
for (; x < 50; i++) {
if (x >= 10)
break;
if (x % 2 != 0) {
x += 3;
continue;
}
x -= -1;
}
cout << x << ' ' << i << endl;
return 0;
} 

本题首先要看清楚一点:x-=-1
其次要知道break和continue的用法,break是直接跳出for循环,continue是,继续执行for循环而不是往下走。
继续分析:
条件1:x>=10,结束循环
条件2:x%2!=0,即x与2取余不等于0,也就是x=1、3、5、7、9才会满足该表达式,只要continue一次x+=3,同时i++执行一次
条件3:只要执行x-=-1(相当于x+=1),也就是x=2、4、6、8才会执行该表达式,同时i++也会执行一次
那么:
x=1,i=1 满足条件2 则:x=4,i=2
x=4,i=2 满足条件3 则:x=5,i=3
x=5,i=3 满足条件2 则:x=8,i=4
x=8,i=4 满足条件3 则:x=9,i=5
x=9,i=5 满足条件2 则:x=12,i=6
由于12>10,所以本次循环执行break,结束
所以x=12,i=6,答案:选C