天天看點

[Java 基礎]控制語句選擇語句循環語句參考資料

選擇語句

if語句

if語句會判斷括号中的條件是否成立,如果成立則執行if語句中的代碼塊,否則跳過代碼塊繼續執行。

文法

if(布爾表達式) {

   //如果布爾表達式為true将執行的語句

}

public class Test {

   public static void main(String args[]){

      int x = 10;

      if( x < 20 ){

         System.out.print("這是 if 語句");

      }

   }

if...else語句

if語句後面可以跟else語句,當if語句的布爾表達式值為false時,else語句塊會被執行。

if(布爾表達式){

   //如果布爾表達式的值為true

}else{

   //如果布爾表達式的值為false

   public static void main(String args[]) {

      int x = 30;

      if ( x < 20 ) {

      } else {

         System.out.print("這是 else 語句");

運作結果

這是 else 語句

if...else if...else語句

if語句後面可以跟else if…else語句,這種語句可以檢測到多種可能的情況。

使用if,else if,else語句的時候,需要注意下面幾點:

  • if語句至多有1個else語句,else語句在所有的elseif語句之後。
  • If語句可以有若幹個elseif語句,它們必須在else語句之前。
  • 一旦其中一個else if語句檢測為true,其他的else if以及else語句都将跳過執行。

if (布爾表達式 1) {

   //如果布爾表達式 1的值為true執行代碼

} else if (布爾表達式 2) {

   //如果布爾表達式 2的值為true執行代碼

} else if (布爾表達式 3) {

   //如果布爾表達式 3的值為true執行代碼

} else {

   //如果以上布爾表達式都不為true執行代碼

    public static void main(String args[]) {

        int x = 3;

        if (x == 1) {

            System.out.print("Value of X is 1");

        } else if (x == 2) {

            System.out.print("Value of X is 2");

        } else if (x == 3) {

            System.out.print("Value of X is 3");

        } else {

            System.out.print("This is else statement");

        }

    }

Value of X is 3

嵌套的if…else語句

使用嵌套的if-else語句是合法的。也就是說你可以在另一個if或者elseif語句中使用if或者elseif語句。

   ////如果布爾表達式 1的值為true執行代碼

   if (布爾表達式 2) {

      ////如果布爾表達式 2的值為true執行代碼

        int x = 30;

        int y = 10;

        if (x == 30) {

            if (y == 10) {

                System.out.print("X = 30 and Y = 10");

            }

X = 30 and Y = 10

switch語句

switch語句判斷一個變量與一系列值中某個值是否相等,每個值稱為一個分支。

switch語句有如下規則:

  • switch語句中的變量類型隻能為byte、short、int或者char。
  • switch語句可以擁有多個case語句。每個case後面跟一個要比較的值和冒号。
  • case語句中的值的資料類型必須與變量的資料類型相同,而且隻能是常量或者字面常量。
  • 當變量的值與case語句的值相等時,那麼case語句之後的語句開始執行,直到break語句出現才會跳出switch語句。
  • 當遇到break語句時,switch語句終止。程式跳轉到switch語句後面的語句執行。case語句不必須要包含break語句。如果沒有break語句出現,程式會繼續執行下一條case語句,直到出現break語句。
  • switch語句可以包含一個default分支,該分支必須是switch語句的最後一個分支。default在沒有case語句的值和變量值相等的時候執行。default分支不需要break語句。

switch(expression){

    case value :

       //語句

       break; //可選

    //你可以有任意數量的case語句

    default : //可選

        char grade = 'C';

        switch (grade) {

        case 'A':

            System.out.println("Excellent!");

            break;

        case 'B':

        case 'C':

            System.out.println("Well done");

        case 'D':

            System.out.println("You passed");

        case 'F':

            System.out.println("Better try again");

        default:

            System.out.println("Invalid grade");

        System.out.println("Your grade is " + grade);

Well done

Your grade is C

循環語句

while 循環

while( 布爾表達式 ) {

    //循環内容

隻要布爾表達式為true,循環體會一直執行下去。

      while( x < 20 ) {

         System.out.print("value of x : " + x );

         x++;

         System.out.print("\n");

value of x : 10

value of x : 11

value of x : 12

value of x : 13

value of x : 14

value of x : 15

value of x : 16

value of x : 17

value of x : 18

value of x : 19

do while 循環

對于while語句而言,如果不滿足條件,則不能進入循環。但有時候我們需要即使不滿足條件,也至少執行一次。

do…while循環和while循環相似,不同的是,do…while循環至少會執行一次。

do {

    //代碼語句

} while (布爾表達式);

布爾表達式在循環體的後面,是以語句塊在檢測布爾表達式之前已經執行了。 如果布爾表達式的值為true,則語句塊一直執行,直到布爾表達式的值為false。

        int x = 10;

        do {

            System.out.print("value of x : " + x );

            x++;

            System.out.print("\n");

        } while ( x < 20 );

for 循環

雖然所有循環結構都可以用while或者do...while表示,但Java提供了另一種語句 —— for循環,使一些循環結構變得更加簡單。

for循環執行的次數是在執行前就确定的。

for (初始化; 布爾表達式; 更新) {

    //代碼語句

關于for循環有以下幾點說明:

  • 最先執行初始化步驟。可以聲明一種類型,但可初始化一個或多個循環控制變量,也可以是空語句。
  • 然後,檢測布爾表達式的值。如果為true,循環體被執行。如果為false,循環終止,開始執行循環體後面的語句。
  • 執行一次循環後,更新循環控制變量。
  • 再次檢測布爾表達式。循環執行上面的過程。

        for(int x = 10; x < 20; x = x+1) {

Java新特性——foreach

Java5引入了一種主要用于數組的增強型for循環。 

for (聲明語句 : 表達式) {

    //代碼句子

聲明語句:聲明新的局部變量,該變量的類型必須和數組元素的類型比對。其作用域限定在循環語句塊,其值與此時數組元素的值相等。

表達式:表達式是要通路的數組名,或者是傳回值為數組的方法。

    public static void main(String args[]) {

        int [] numbers = {10, 20, 30, 40, 50};

        for ( int x : numbers ) {

            System.out.print( x );

            System.out.print(",");

        System.out.print("\n");

        String [] names = {"James", "Larry", "Tom", "Lacy"};

        for ( String name : names ) {

            System.out.print( name );

10,20,30,40,50,

James,Larry,Tom,Lacy,

break 關鍵字

break主要用在循環語句或者switch語句中,用來跳出整個語句塊。

break跳出最裡層的循環,并且繼續執行該循環下面的語句。

        for(int x : numbers ) {

        if( x == 30 ) {

10

20

continue關鍵字

continue适用于任何循環控制結構中。作用是讓程式立刻跳轉到下一次循環的疊代。

在for循環中,continue語句使程式立即跳轉到更新語句。

在while或者do…while循環中,程式立即跳轉到布爾表達式的判斷語句。

            if( x == 30 ) {

                continue;

40

50

參考資料

Spring實戰(第3版)

http://www.w3cschool.cc/java/java-loop.html