return x; //returning the value of x(assuming that x has previously been declared to be an int)
return x+y; //returning the value of the expression”x+y”(here,we`re assuming that “x+y” evaluates to an int value)
return (int)z; //casting the value of z(assume z was declared as a double to an int value)
?
3.????如果程序定義為具有boolean返回類型,那么下列任何一種return語句都可以接受:
?
return false; ??//returning a Boolean constant value
return outcome; //returning the value of variable outcome (assuming that outcome has previously been declared to be of type Boolean)
return(x<3);????//returning the Boolean value that results when the value of x is compared to 3: if x if less than 3, this method returns a value of true; otherwise, it returns false.
2016-02-18
一。break
????1. break語句形式:?break;
????2. break語句功能:
A. switch語句中,break語句會(huì)終止其后語句的執(zhí)行,退出switch語句。
B.?使一個(gè)循環(huán)立即結(jié)束,也就是說在循環(huán)中遇到break語句時(shí),循環(huán)立即終止,
程序轉(zhuǎn)到循環(huán)體后的第一個(gè)語句去繼續(xù)執(zhí)行。
????3.?注:
A. break語句在循環(huán)中使用時(shí),總是與if一起使用,當(dāng)條件滿足(或不滿足)
時(shí),負(fù)責(zé)退出循環(huán)。
???????B.?如果循環(huán)體中使用switch語句,而break出現(xiàn)在switch語句中,則它只用
于結(jié)束switch,而不影響循環(huán)。
???????C. break語句只能結(jié)束包含它的最內(nèi)層循環(huán),而不能跳了多重循環(huán)。
????4.?例: break語句的執(zhí)行只能從while循環(huán)中退出,繼續(xù)執(zhí)行for循環(huán)的其它語句
而不是退出外層循環(huán)。
???????for()
???????{
???????????:
???????????:
???????????while()
???????????{
??????????????:
??????????????:
??????????????if() break;
??????????????:
??????????????:
???????????}
???????????:
???????????:
???????}
?
?
二。continue???
????1.continue語句形式:?continue;
????2.continue語句功能:???它只能出現(xiàn)在循環(huán)體中,其功能是立即結(jié)束本次循環(huán),
即遇到continue語句時(shí),不執(zhí)行循環(huán)體中continue后的語句,立即轉(zhuǎn)去判斷循環(huán)條件是否成立。??
3.Continue與break語句的區(qū)別: continue只是結(jié)束本次循環(huán),而不是終止整個(gè)循
環(huán)語句的執(zhí)行,break則是終止整個(gè)循環(huán)語句的
執(zhí)行,轉(zhuǎn)到循環(huán)語句后的下一條語句去執(zhí)行。
?????程序表達(dá)式及流程圖如下:
(1.)????????while(表達(dá)式1)??????????????????(2.)while(表達(dá)式1)
{????????????????????????????????????{
??????:???????????????????????????????????:
???????????If(表達(dá)式2) break;??????????????????if(表達(dá)式2) continue;
???????????:????????????????????????????????????:
???????}????????????????????????????????????}
?
三.goto
1.goto語句形式:goto語句是無條件轉(zhuǎn)向語句,其一般形式為:
?????????????????goto?語句標(biāo)號(hào);
????2.功能:goto語句往往用來從多重循環(huán)中跳出。它在解決一些特定問題時(shí)很方便,但由于goto語句難于控制,盡量少用。
????3.例:
???????????IN:
??????????????For()
??????????????{
???????????????????:
???????????????????:
???????????????????Goto IN;
???????????????}
?????????????
???
四.Return
???
1.return語句形式:?return (返回值);
????2.功能:return可以返回一個(gè)函數(shù)的值,并且跳出這個(gè)函數(shù);
?
??????Void doSomething(){
???????do whatever is required by this method …
???????return;
????}
?
只要遇到return語句,程序就在那一行代碼停止執(zhí)行,執(zhí)行控制將立刻返回到調(diào)用該程序的代碼處。
對(duì)于返回值類型為void的程序,return關(guān)鍵字單獨(dú)作為完整的語句使用:
return;
?
1.????對(duì)于返回類型為void的程序,return;語句是可選的。如果省略這條語句,隱含表明程序的最后一行有一個(gè)return;語句。即,下面兩個(gè)版本的doSomething程序是等價(jià)的:
?
void doSomething(){
?????int x=3;
?????int y=4;
?????int x=x+y;
}
和
void doSomething(){
?????int x=3;
?????int y=4;
?????int x=x+y;
?????return;
}
?
2.????對(duì)于返回類型非void的程序體,必須至少包括一條明確的return語句。這種情況下,return關(guān)鍵字后面必須跟隨一個(gè)求值類型和程序聲明的返回類型一致的表達(dá)式。例如,如果程序定義為具有int返回類型,那么下列任何一種return語句都可以接受:
?
return 0; //returning a constant integer value
return x; //returning the value of x(assuming that x has previously been declared to be an int)
return x+y; //returning the value of the expression”x+y”(here,we`re assuming that “x+y” evaluates to an int value)
return (int)z; //casting the value of z(assume z was declared as a double to an int value)
?
3.????如果程序定義為具有boolean返回類型,那么下列任何一種return語句都可以接受:
?
return false; ??//returning a Boolean constant value
return outcome; //returning the value of variable outcome (assuming that outcome has previously been declared to be of type Boolean)
return(x<3);????//returning the Boolean value that results when the value of x is compared to 3: if x if less than 3, this method returns a value of true; otherwise, it returns false.
?
程序體可以包含不只一條return語句。但好的編程習(xí)慣是一個(gè)程序中只在最末尾包含一條return語句。再看一下前面討論過的isHornorsStudent程序,這個(gè)程序有兩條return語句:
boolean isHonorsStudent(){
if(gpa>=3.5) return true; //first return statement
else return false; //second return statement
}
?
使用局部boolean型變量result來重寫這個(gè)程序,該變量捕獲最終返回的true/false結(jié)果。在程序最末尾用一條return語句返回result變量的值:
boolean isHonorsStudent(){
boolean result = false;
if(gpa>=3.5) result = true;
else result = false;
return result;
}
如上述代碼所示,由于已經(jīng)給result變量賦予初值false,因此在else子句中明確地給它賦值false是不必要的,可以像下面這樣簡化isHornorsStudent程序:
boolean isHonorsStudent(){
boolean result = false;
if(gpa>=3.5) result = true;
return result;
}
?
但是有一種情況下多個(gè)return語句是可以接受的:程序需要執(zhí)行一系列操作,在這個(gè)過程中,任何一步失敗意味著整個(gè)程序失敗。下面的偽代碼闡明了這種情況:
?
function cs(n){
if(n==1) { retrun 1; }
if(n==2) { return; }
else { }
}
說明:???當(dāng)參數(shù)為1時(shí)函數(shù)返回值為1并且跳出函數(shù),
????????????????當(dāng)參數(shù)為2時(shí)函數(shù)返回值為空并且跳出函數(shù),
????????????????當(dāng)函數(shù)為其他值時(shí)繼續(xù)執(zhí)行函數(shù)下面的語句,直到遇到下個(gè)return或則全部執(zhí)行完語句在跳出函數(shù)
根據(jù)以上:
所以不是一定有啊,要看你的邏輯,如果有兩個(gè)或多個(gè)case需要執(zhí)行同一個(gè)動(dòng)作,就可以case傳越, case 1: case 2: ? ? 語句;--1和2 都執(zhí)行,break; case 3: .........這樣也行的
2016-10-25
高手啊!整理的這么清楚!