C循环疑惑
这道题计算过程是怎么计算的啊?那位前辈可以给我讲解一下?? 一个账号 发表于 2019-10-22 18:04
?
为什么这道题会选B啊? 李龙江 发表于 2019-10-22 18:10
为什么这道题会选B啊?
难道不是你选的?我不会 最后那个a=3;??看不清
本帖最后由 superbe 于 2019-10-22 20:30 编辑
初始值a==1, b==1
第一次循环后:a==6, b==2 (循环中执行了if(a%2==1){...}中的代码使a+5)
第二次循环后:a==3, b==3 (循环中执行了a=3) 换成 a -= 3结果是一样的, 6 - 3还是使 a 变成3。
第三次循环后:a==8, b==4 (循环中执行了if(a%2==1){...}中的代码使a+5)
第四次循环:满足a>=8退出
b是在循环体结束后下次循环体开始前自增1
zwh1481017739 发表于 2019-10-22 18:27
最后那个a=3;??看不清
a-=3 来,先和我一起治疗颈椎病
其实题目都不要细看, 猜都猜的到 问题出在b++ b++是先走流程 再计算. 就来看看c
这道题打印的变量是b。
首先看初始值,a=1,b=1。a小于8,所以不执行break语句;然后判断a%2是否等于1,此时条件成立,则执行a=a+5;此时a=6;continue结束本次循环,执行b++;
第二次进入循环,此时a=6,b=2;a小于8,所以不执行break;然后判断a%2是否等于1,条件不成立,则执行a=a-3;此时a=3;b++;
第三次进入循环,此时a=3,b=3;a小于8,所以不执行break;然后判断a%2是否等于1,条件成立,则a=a+5;此时a=8;continue结束本次循环,执行b++;
第四次进入循环,此时a=8,b=4;a大于等于8,执行break;
最后执行printf语句打印b的值。 李龙江 发表于 2019-10-22 18:10
为什么这道题会选B啊?
你想选什么呢?
在b=4的时候,因为a=8了,所以直接被break了,没法继续执行b++了 所以不选B选什么呢……
用PYTHON写的
这道题也没有文字游戏之类的啊……def main():
a=1
forb in range(1,10+1):
if a>=8:
break
if a%2==1:
a+=5
continue
a-=3
print(b)#4 看的脖子疼 学到了 把代码运行一次就知道结果了
然后要是不懂的话就设置断点,慢慢调试!
页:
[1]