qq_慕神645887
2019-02-24 22:16
输出m=3之后m执行第一个for语句的第三个代码自增成为4,判断m<=50为真,进入第二个for循环。
此时n=3,m=4,n<m成立,进行第二个for循环的if判断4%3==0结果为假,故n执行第二个for循环的第三块代码自增成为4
然后就会进行第一个for循环的if判断m==n,此时m=n=4,这输出不就有问题了么
希望大佬能解惑,我是哪一个地方思考出问题了吗
我是新手,不是大佬,但是可以回答这个问题。
这里你把概念搞错了,第二个for语句一开始就在第一个分号前定义了n=2,所以顺序是这样的:
(1)执行完m=3之后,m执行第一个for语句的第三个代码自增成为4,这里你理解没问题。
(2)进入第二个for循环,重新定义n=2,(就是这里理解出错!!!)
(3)判断n<m是否成立,此时m=4,n=2,所以n<m成立,进行第二个for的执行。
(4)4%2==0结果为真
后面就不用说了。你就是在第二步这里把for的定义给忘记了,所以嵌套的for需要注意这个。
C语言入门
926020 学习 · 20793 问题
相似问题