初学者遇到循环可以设置断点,单步运行,查看变量变化:
for循环,i初始值为5,i+=4即i=i+4步进4,循环体内i=i+3又步进3,所以每次循环i增加7,s值是在i步进前运算的s+i,直到i<17这个条件不成立退出循环。
第一次开始时:i是5,s是2019;
第二次开始时:i是12,s是2024,满足i<17,继续;
第三次开始时:i是19,s是2036,不满足i<17,退出。
所以最终i是19,s是2036。
关键知识点,for循环的运算顺序:
for循环我们可以表示为:
for(表达式1;表达式2;表达式3)
{
语句;
}
程序运行时:
求解表达式1。
求解表达式2。若其值为真,则执行 for 语句中指定的内嵌语句,然后执行第3步;若表达式2值为假,则结束循环,转到第5步。
求解表达式3。
转回上面第2步继续执行。
循环结束,执行 for 语句下面的语句。
对照题目:
首先i = 5,i < 17满足,执行for循环内嵌语句:
s = s+i -->s = 2019+5 = 2024;
i = i+3 -->i = 5 + 3 = 8;
然后运行for语句表达式3:
i+=4-->i = i+4 --> i = 8+4 = 12;
12 < 17满足要求,继续运行:
s = s+i -->s = 2024 + 12 = 2036;
i = i+3 -->i = 12 + 3 = 15;
接着运行for语句中表达式3:
i+=4-->i = i+4 --> i= 15 + 4 = 19;
19 < 17为假,for循环结束;
所以for循环结束后:s = 2036,i = 19;
既打印为:19, 2036
本回答被提问者采纳