黑馬程序員----【javaSE基礎】入門基礎--流控制

------- 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聲明返回類型爲空時,就應該使用這種格式,即不返回任何值。

------- android培訓java培訓、期待與您交流! ----------

------- android培訓java培訓、期待與您交流! ----------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章