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

n<m有意义吗。

即使删掉n<m,程序也能正常运行。而且,依据素数的条件,n与m同时自增的情况下不应该一直相等吗

提问者:郭兰 2020-12-18 15:35

个回答

  • 暮雪忆
    2020-12-20 17:36:09

    n<m有意义。

    n<m的意义在于规定了for循环跳出的条件。

    程序也能运行成功是因为:

    for循环里有一个if语句,只有满足了if语句里的条件时,才会执行。换言之,满足不了则不执行,而是执行n<m,继续判断if语句里的条件。之后n加一。继续执n<m等等。

    如果把n<m删去,就变成了for(n=2;;n++),一般的话它因该是一个死循环,但是这个for循环下是一个if语句,当n<m时,满足条件的是像4,6,8,9,10这些有别的因数的数.

    当n>=m,即n>=50时,m除50外永远不可能整除n,所以就不会执行if语句;

    我猜想计算机自动跳出了,去判断n==m.

    有的软件版本也许不能够跳出,严谨的话就加上。


  • 暮雪忆
    2020-12-20 16:21:37

    n与m没有同时自增。

    m增加一,下面for循环一次。下面for循环时n不止增加了一次。

  • 若翼6153757
    2020-12-19 17:12:55

    不是吧