问答详情
源自:4-14 结束语句之break语句

大佬求指教

输出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,这输出不就有问题了么
希望大佬能解惑,我是哪一个地方思考出问题了吗

提问者:qq_慕神645887 2019-02-24 22:16

个回答

  • 慕九州156408
    2019-02-25 18:44:42
    已采纳

    我是新手,不是大佬,但是可以回答这个问题。

    这里你把概念搞错了,第二个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需要注意这个。