哪位大神解释一下,n不是应该<=m么
n<m的话你就取不到m,n就不会等于m,如果这个数是素数,应该会return 0吧 但是程序能跑出素数,求解
n<m的话你就取不到m,n就不会等于m,如果这个数是素数,应该会return 0吧 但是程序能跑出素数,求解
2018-06-23
不会取不到m的,我们可以一步步来看。
1 在第一个for语句的第一个表达式中,便将2赋予了m;
2 然后判断第二个表达式m<=50(此时m=2),值为1(即 结果为真);
3 然后执行第一个for语句的循环体语句中的第一个语句:第二个for语句;
4 在第二个for语句的第一个表达式中,将2赋予了n(此时m=2);
5 然后判断第二个for语句的第二个表达式n<m(此时n=2,m=2),值为0(即 结果为假),不执行第二个for语句的循环体语句(即 第一个if语句),因此也不执行第二个for语句的第三个表达式(因为for语句的第三个表达式要在执行完循环体语句后才执行),此时m,n仍为2;
6 然后执行第一个for语句的循环体语句中的第二个语句(即 第二个if语句);
7 判断第二个if语句的表达式m==n(此时m,n均为2),值为1(即 结果为真),所以执行第二个if语句的语句(即 显示“2 ”);
8 此时第一个for语句的循环体语句已经执行完第一次,开始执行第三个表达式m++,使m=3,接着又回到第二个表达式m<=50,值为1,又开始第二次循环.......
举报