1. 程式人生 > >break,continue,return的區別

break,continue,return的區別

停止 中間 pri 結束 返回值 abc 區別 () 內存

1)break 直接跳出當前的循環,從當前循環外面開始執行,忽略循環體中任何其他語句和循環條件測試。他只能跳出一層循環,如果你的循環是嵌套循環,那麽你需要按照你嵌套的層次,逐步使用break來跳出.

2)continue 也是終止當前的循環過程,但他並不跳出循環,而是繼續往下判斷循環條件執行語句.他只能結束循環中的一次過程,但不能終止循環繼續進行.

3)return 語句可被用來使 正在執行分支程序返回到調用它方法。(費解)

詳說return

return表示中止當前函數的運行,並將操作權返回給調用者。

如果是在main函數中,表示將操作權返回給操作系統。

return不是必須要返回一個值。

void func(void)

{

//代碼塊...; return;

}

當然,就算不寫return,在函數執行完畢後也會返回操作權給調用者。寫return是一種清晰的風格,可以防止一些意外的錯誤。所以書上只說應該寫,而不是必須寫。

如果符合某個條件要退出的話,可以用return返回,否則可以不寫這句代碼的,當程序執行到“}”時會自動返回,這個問題其實你自己到機器上試一下就知道了。不過作為一個良好的編程習慣,每個函數都有返回語句倒是對的,這樣更有可讀性,並利於程序的維護~~~~

return 指令一個是返回一個指定數據給主調函數,

另外的一個作用就是 結束 所在函數的執行 ...

子函數中的運算是不能改變main()中已經定義的變量

int add(int a, int b)

{

int c; //常用編程中,帶參方法沒有返回值就會報錯。(此處參考)

c=a+b;

}

main() //主方法入口,此處省略...

{

int a=1,b=2, c=0;

add(a,b);

print("/nc=%d/n", c);

}

你看看 最後結果還是c=0;

因為計算機執行一個程序的時候 他只看到main();

他十分忠誠的 從main()的第一句 一直執行到最後一句 ;

中間的那個 add()調用;

這時main()函數被掛起 ;

也就是停止運行 系統會把main()放在一塊內存x中 ;

這時 系統會把一片內存y劃分給add()函數;

也就是說 main()中的abc;和add()中的abc;

並不是同一個東西;

他們只是在數值上相等罷了;

系統首先把a;b;的值傳給add;

然後運行;

c=3;

然後系統沒有發現add中有return;

也就是 子函數做完了運算;

並沒把內存y中的結果送給main();

這時候 add運行結束;

系統喚醒內存x中的main();

開始運行下一句 這時候 ;

add函數做的一切 都是白幹了;

他並沒有把他的結果上交給main()函數;

所以c仍然是0;

add(int a, int b)

{

int c;

c=a+b;

return c;

}

main()

{

int a=1, b=2, c=0;

c=add(a,b);

print("/nc=%d/n",c);

/*還可以這樣寫*/

print("/nc=%d/n",add(a,b));

}

想要通過子函數來改變main()中的東西;

有兩個方法:1 return ; 2 通過指針;

這裏 指針我就不說了 到了c#就沒有指針了 我是學c的 才大一 ;

我們用的最多的是指針;一般不用return ;

break,continue,return的區別