(一)前言
在計算機編程過程中,當我們需要在特定的時間或位置結束某段語句時,我們就不得不借助控制語句來幫助我們完成這一功能。因此,瞭解三者之間的異同是我們理應儲備的知識。
(二)break、continue與return
(1) break
break作用於循環語句和switch語句段中,用於跳出本循環。但在循環語句段中,若break外還嵌套有多層循環,則break只能跳出包裹break的一層循環而無法跳出所有循環。例如:
for(int i = 1; i < 10 ;i++) //第一層循環
{
for(int j = 1; j < 10 ; j++) //第二層循環
{
if(j >= 2) //註釋①
break;
System.out.println(j);
}
}
此段代碼的輸出結果爲:1 1 1 1 1 1 1 1 1;可知共輸出了9次1;break使得當 j >= 2時就跳出了第二層循環,因此只輸出1;而並沒有跳出第一層循環,因此一共要輸出9次。
【 註釋①】:在if條件語句內,break後面不能接任何語句,因爲程序只執行到break就結束了,因此後續語句均是無效語句。
(2) continue
continue只能作用於循環語句段內,用於結束本次循環。與break不同的是,continue結束本次循環之後會立馬執行下一次循環,而非結束整個循環語句。例如:
for(int i = 1; i < 10 ;i++)
{
if(i % 2 ==0) //註釋②
continue;
System.out.println(i);
}
結果輸出:1 3 5 7 9;可知當i被2整除時,continue語句被執行,此次循環被結束,因此在此時的循環中,System.out.println(i)語句被跳過而直接進入下一次循環。最終輸出:1 3 5 7 9。
【 註釋2】:同樣的,當continue被執行時,其後的代碼均無法執行,因此都是無效語句。故continue之後無法接其它語句。
(1) break
renturn作用於函數內的任意位置,當程序執行到renturn時,整個函數就會停止進行,當此函數爲程序主函數(main)時,整個程序也會結束運行,簡而言之,return時結束包含該語句的整個函數。例如:
public void output()
{
for(int i = 1; i < 10 ;i++)
{
if(i % 2 ==0)
retuen 0;
System.out.println(i);
}
System.out.println("程序繼續運行了!!");
}
output打印的結果爲:1;可知System.out.println(“程序繼續運行了!!”)並未被執行,整個函數直接終止。
(三)總結
控制語句 | |
---|---|
break | |
continue | |
return |