關(guān)于continue循環(huán)上,例程代表性不足
#include <stdio.h>
int main()
{
? ? int i ;
? ? for(i=1 ; i<=10; i++)
? ? {
? ? ? ? printf("1111%d\n",i);
? ? ? ? if( ? ? i==5 ? ?) ? ?//能被3整除這個(gè)條件如何寫呢?
? ? ? ? {
? ? ? ? ? ? printf("中斷\n");
? ? ? ? ? ? //continue; ? ? ? ? ? ? //應(yīng)該用哪個(gè)循環(huán)結(jié)束語(yǔ)句呢?
? ? ? ? } ? ? ? ? ? ? ? ? ?
? ? ? ??
? ? }
? ? printf("sum");
? ? return 0; ? ?
}
以上是我根據(jù)例程的模式自己改成的代碼,可以看到,無(wú)論使用continue還是不使用,其輸出一致:
因?yàn)槔躺系膇f語(yǔ)句在for循環(huán)之內(nèi),并且其判定是當(dāng)i==5,我們嘗試模擬一下程序流程就能發(fā)現(xiàn)其中問題:當(dāng)程序走到i==5時(shí)首先進(jìn)行進(jìn)行for循環(huán)中第一個(gè)printf顯示,再之后進(jìn)行if語(yǔ)句判定,判定結(jié)果為“1”,進(jìn)入if語(yǔ)句第二個(gè)printf,在此之后跳出當(dāng)前循環(huán)也就是“continue”,也就是結(jié)束當(dāng)前循環(huán),進(jìn)入下一循環(huán),但continue之后并沒有其他語(yǔ)句,這就是問題所在。我們嘗試把“continue”去掉,可以發(fā)現(xiàn)由于continue之后并沒有其他語(yǔ)句,所以當(dāng)if判定、第二個(gè)printf完成之后依然是繼續(xù)下一次循環(huán)。個(gè)人認(rèn)為如果要使得continue具有實(shí)際意義那么應(yīng)該是當(dāng)需要臨時(shí)中斷某一次動(dòng)作時(shí),或此次循環(huán)中的語(yǔ)句單獨(dú)有某一作用時(shí)使用,簡(jiǎn)單來(lái)說(shuō)就是在continue語(yǔ)句是用來(lái)使接下來(lái)一次(多次)動(dòng)作改變或舍去時(shí)使用的,大家可以嘗試把第一個(gè)printf語(yǔ)句放在if判定之后,或在if語(yǔ)句之后加上其他動(dòng)作來(lái)嘗試。
以上是本人在學(xué)習(xí)過(guò)程中發(fā)現(xiàn)的一些小問題,如果有錯(cuò)誤還請(qǐng)大家不吝談教。。。
2019-07-24
emmmm ? ?continue前面兩//是不是變成注釋了
2019-04-17
有道理,我覺得你說(shuō)的沒錯(cuò)起臨時(shí)舍去的意義,我也是新手哈剛學(xué)到這塊,希望能有大佬解答解答
2019-01-29
這是我的看法,不一定對(duì),希望對(duì)你有幫助。
2019-01-29
漢語(yǔ)部分看不懂,但是if不是循環(huán)語(yǔ)句for是還有do-while是。能被3整除(i%3==0)