------- android培訓、java培訓、期待與您交流! ----------
Java流控制的分類
1、分支語句:if-else,break,switch,return。
2、循環語句:while,di-while,for,continue。
3、例外處理語句:try-catch-finally,throw。
4、註釋語句。
分支語句:
分之語句給我們提供了一個控制機制,它的作用就是跳過某些語句不執行,轉而去執行特定的語句。
條件語句 if-else
格式是:
if(boolean-expression)
statement1;
[else
statement2;]
說明:
1、布爾表達式boolean-expression是任意一個返回布爾型數據的表達式。
2、每一個單一的語句後面都必須有一個分號——“;”。
3、對於“statement1”和“statement2”兩個部分,可以是單一的語句,也可一時複合的語句,對於單一和複合的語句來說,都要用大括號“{”“}”括起來,這樣增加了程序的閱讀性,也有利於程序的擴充。但要注意:“{”“}”外面沒有分號“;”。
4、else子句是可選的,並不是一定要有的。
5、如果boolean表達式的值爲真,則執行statement1,否則執行statement2。
6、對於多個if-else語句的選擇,格式如下(只舉一例):
if (exprression1)
{
statement1;
}
else if (expression2)
{
statement2;
}
…………
else if (expressionM)
{
statementM;
}
else
{
statementN;
}
7、else不能單獨作爲一個語句,必須和if一起使用,並且是和離它最近的if配對。但是可以通過大括號“{”“}”來改變配對關係。
例4-1 比較兩個數的大小,並按照從小到大的次序排列。
public class CompareTwo
{
public static void main ( String args[ ] )
{
double d1 = 23.4 ;
double d2 = 35.1 ;
if( d2 >= d1 )
System.out.println(d2+" >= "+d1) ;
else
System.out.println(d1+" >= "+d2) ;
}
}
運行結果是:
c:/>javac CompareTwo.java
C:/>java CompareTwo
35.1 >= 23.4
例4-2 判斷某一年是不是閏年。
做過c/c++的程序已經看到過很多次了,但是現在還是要來說說。
首先,我們應該明確判斷閏年的條件是什麼?
①、能被4整除,但不能被100整除;
②、能被4整除,又能被100整除。
以上兩個條件,任意一個符合都是閏年。
public class LeapYear
{
public static void main( String args[] )
{
int year=1989; //method 1
if( (year%4==0 && year%100!=0) || (year%400==0))
System.out.println(year+" is a leap year.");
else
System.out.println(year+" is not a leap year.");
year=2000; //method 2
boolean leap;
if( year%4!=0 )
leap=false;
else if( year%100!=0 )
leap=true;
else if( year%400!=0 )
leap=false;
else
leap=true;
if( leap==true )
System.out.println(year+" is a leap year.");
else
System.out.println(year+" is not a leap year.");
year=2050; //method3
if( year%4==0)
{
if( year%100==0 )
{
if( year%400==0)
leap=true;
else
leap=false;
}
else
leap=false;
}
else
leap=false;
if( leap==true )
System.out.println(year+" is a leap year.");
else System.out.println(year+" is not a leap year.");
}
}
運行結果爲
C:/>java LeapYear
1989 is not a leap year.
2000 is a leap year.
2050 is not a leap year.
多分支語句 switch 格式是:
switch ( expression )
{
case value1 : statement1 ; break ;
case value2 : statement2 ; break ;
case value3 : statement3 ; break ;
……………………
case valueN : statementN ; break ;
[ default : defaultStatement ; ]
}
大部分說明應該都可以理解,特別要說明的是:
1、case後面的value應該(必須)是常量,並且,所有case後面的value都不應該相同。
2、break是用來中斷循環的,但是,對於一些特殊情況,多個不同的case值要執行一組的相同操作數,這時,就可以不用break。 對於後面的一些一句,比較簡單,就不多說了。
Java循環語句
對於循環語句,始終要記住,一個循環體包含下面四個部分:
第一、初始化(Initialization)部分:一般用來設置一些循環的初始條件和計數器清零等等。
第二、循環體(Body)部分:這一部分是反覆循環的一段代碼,可以是單一的一條語句,也可以是複合語句。
第三、迭代(Iteration)部分:這一部分是在當前循環結束,下一次循環開始並執行的語句,常常用來使計數器加1或者減1。
第四、終止(Termination)部分:通常是一個布爾表達式,每一次循環要對該表達式求值,以驗證是否滿足循環終止條件。
和C/C++一樣,Java提供的循環語句有:while,do-while,for三個語句。
while 語句用來實現“當型”循環,一般格式是:
[initialization]
while ( termination )
{
body ;
[interation;]
}
“當型”循環的特點是:首先判斷循環終止的條件是否滿足,如果滿足,則執行循環體中的語句,如果不滿足,就不執行循環體。
do-while 語句用來實現“直到型”循環,一般格式是:
[initialization]
do
{
body ;
[interation;]
}while (termination);
“直到型”循環的特點是:首先執行循環體,然後計算終止條件,如果結果爲“true”,則循環執行大括號中的語句,直到布爾表達式的結果是“false”。
for 語句也是用來實現“當型”循環的,一般格式是:
for ( initialization ; termination ; iteration )
{
body ;
}
for語句的循環最爲靈活,最爲好用,在執行的時候,首先進行初始化,然後判斷終止條件是否滿足,如果滿足,則執行循環體中的語句,最後執行迭代部分。完成一次循環之後,重新判斷終止條件。
對於for語句小括號裏面的三個部分,可以任意寫(中間的分號“;”不能少!),也可以全部不寫,但是,如果全部不寫,整個for循環就相當於一個死循環。
break語句和continue語句
下面來說說break語句和continue語句。
break 語句 break 語句主要用於多分支選擇語句 switch 裏面。它的作用是:
1、用在switch裏面的時候,break語句用來在執行完一個case分支之後使程序跳出switch語句,即終止seitch語句的執行,讓程序switch語句後的第一個語句開始執行。
2、在Java中,可以爲每個代碼塊加一個括號,一個代碼塊通常用大括號“{”“}”括起來的一段代碼。加標號的格式如下:
BlockLabel:
{
codeBlock
}
因此,break語句的第二種使用情況就是跳出它所指定的塊,並從緊跟該塊的第一條語句處執行。其格式爲:
break BlockLabel;
例如:
a:
{…… //標記代碼塊a
b:
{…… //標記代碼塊b
c:
{…… //標記代碼塊c
break b;
…… //will not be executed }
…… //will not be executed }
…… //will not be executed }
…… //execute from here }
從這裏,可以看出Java與C/C++不同,Java中沒有goto語句來實現任意的跳轉,因爲goto語句破壞程序的可讀性,而且影響編譯的優化。但是從上例可以看出,Java用break來實現goto語句所特有的一些優點。如果break後所指定的標號不是一個代碼塊的標號,而是一個語句,則這時,break完全實現了goto的功能。不過應該避免這種方式的使用。
continue語句
1、continue語句使用來結束本次循環,跳過循環體中continue後面尚未執行的部分語句,接着進行終止條件的判斷,以決定是否繼續循環。對於for語句來說,在進行終止條件的判斷之前,還要執行迭代語句。它的格式是:
continue ;
2、也可以用continue語句來跳轉到括號指明的外層循環中,這時的格式爲:
continue outerLable;
例如:
outer: for( int i=0; i<10; i++ ) ∥外層循環
{
for( int j=0; j<20; j++ ) ∥內層循環
{
if( j>i )
{
……
continue outer;
}
……
}
……
}
在該例中,當滿足j>i的條件時,程序執行完相應的語句後跳轉到外層循環,執行外層循環的迭代語句i++;然後開始下一次循環。
return語句
return 語句
return語句是從當前的方法中退出,返回到調用該方法的語句處繼續執行程序。return語句主要有兩種格式:
1、return expression 返回一個值給調用該方法的語句,返回值的數據類型,必須與方法聲明中的返回值類型一致。也可以使用強制類型轉換來使類型一致。
2、retuen 當方法說明中用void聲明返回類型爲空時,就應該使用這種格式,即不返回任何值。