第二次以后子循環(huán)是重新賦值嗎
就是, 當(dāng)?shù)谝淮胃秆h(huán)結(jié)束后,第二次進(jìn)入子循環(huán)時(shí)還是用for中第一個(gè)賦值嗎,還是用上次子循環(huán)后的值,如果是重新賦值的話,為什么還會(huì)出現(xiàn)m=n的情況呢,求大神搭救......
就是, 當(dāng)?shù)谝淮胃秆h(huán)結(jié)束后,第二次進(jìn)入子循環(huán)時(shí)還是用for中第一個(gè)賦值嗎,還是用上次子循環(huán)后的值,如果是重新賦值的話,為什么還會(huì)出現(xiàn)m=n的情況呢,求大神搭救......
2018-08-17
舉報(bào)
2018-08-17
哦哦,懂了,你要清楚那個(gè)m,n的定義范圍,m,n是定義的局部變量,它們的作用范圍包括整第一個(gè)for循環(huán),直到return.......整個(gè)流程是這樣的:
第一次進(jìn)入父循環(huán),此時(shí)m=2,然后進(jìn)入再進(jìn)入子循環(huán),n=2,這時(shí)if判斷m是否能被n正除,如果能這m不為素?cái)?shù),這break跳出m=2的這個(gè)父循環(huán),然后m++,再判斷m=3的情況;如果不能整除,那很幸運(yùn),這個(gè)數(shù)就是我們要輸出的素?cái)?shù),但是還要判斷一下,只有當(dāng)這個(gè)數(shù)等于除數(shù)的時(shí)候,這個(gè)時(shí)候它的所有情況(n<m)都已經(jīng)判斷完了,這個(gè)就是我們要輸出的素?cái)?shù),及就為m=n這步代碼。
總得來說,這個(gè)兩個(gè)for嵌套的循環(huán)體,第一父循環(huán)就是讓我們從0~50之間每個(gè)數(shù)去試探一下每個(gè)數(shù),但怎么試探來判斷這個(gè)當(dāng)前的m是素?cái)?shù)呢?然后子for循環(huán)則就是判斷的方法,則讓當(dāng)前的m去被除這個(gè)n(n的范圍為0<n<m),逐個(gè)去試探,然后找出滿足條件的素?cái)?shù)。
或許我有點(diǎn)啰嗦,但關(guān)于m=n的問題,例如,當(dāng)m=3時(shí),進(jìn)入子循環(huán),n=2,然后執(zhí)行循環(huán)體里的內(nèi)容后,加n++,這個(gè)時(shí)候n=3,但n不符合子循環(huán)體里的條件,則不執(zhí)行子循環(huán)體里的內(nèi)容,此時(shí)n=3咯~則n==m,怎么不可能出現(xiàn)m==n的情況呢?或許你for循環(huán)的這個(gè)流程或許不清楚吧~
for(1,2,3){代碼},先執(zhí)行1,然后判斷2,若為真,則執(zhí)行代碼,然后3,然后再判斷2,是否為真,為真,則執(zhí)行代碼,不為真,則代表這個(gè)for循環(huán)結(jié)束.........
大概就這些了,如果有什么問題的話,歡迎來問,加油哦!
2018-08-17
for里面不是寫了嗎? j=2就是重新賦值了。
你假設(shè)m一個(gè)值,比如說m=7。
?此時(shí)的m,也就是7,讓他除以2???
發(fā)現(xiàn)不能整除,那么n+1變成3
?m一直除一直除,n一直+一直+,
?除到終于有一個(gè)數(shù)可以被整除,這時(shí)m一看,嘿這不是它本身嘛,判斷if(m == n)?
是的話就printf一個(gè)素?cái)?shù)出來了?
2018-08-17
可以附一下你思路中的偽代碼嗎?我閱讀理解不是很好.........#滑稽