java的if else語句入門指南(推薦)_java

來源:互聯網
上載者:User

條件陳述式,是程式中根據條件是否成立進行選擇執行的一類語句,這類語句在實際使用中,痛點在於如何準確的抽象條件。例如實現程式登入功能時,如果使用者名稱和密碼正確,則進入系統,否則彈出“密碼錯誤”這樣的提示框等。

本部分對於條件陳述式的介紹,重點在於文法講解和基本的使用,更詳細的使用參看後續的綜合樣本部分。

在Java語言中,條件陳述式主要有兩類文法:if語句和switch語句。

1 、if語句

if關鍵字中文意思是如果,其細緻的文法歸納來說總共有三種:if語句、if-else語句和if-else if-else語句,下面分別進行介紹。

1.1 if語句

該類語句的文法格式為:if(條件運算式)

功能代碼;文法說明:if是該語句中的關鍵字,後續緊跟一對小括弧,該對小括弧任何時候不能省略,小括弧的內部是具體的條件,文法上要求該運算式結果為boolean類型。後續為功能的代碼,也就是當條件成立時執行的代碼,在程式書寫時,一般為了直觀的表達內含項目關聯性,功能代碼一般需要縮排。

需要特別注意的是:

1、 這裡的功能代碼只能是一行,關於多行結構的功能代碼,後續將說明。

2、 if(條件運算式)後續一般不書寫分號if語句的執行流程為:如果條件運算式成立,則執行功能代碼,如果條件運算式不成立,則不執行後續的功能代碼。

範例程式碼:

int a = 10;

if(a >= 0)

System.out.println(“a是正數”);

if( a % 2 == 0)

System.out.println(“a是偶數”);

在該範例程式碼中,第一個條件是判斷變數a的值是否大於等於零,如果該條件成立則執行輸出,第二個條件是判斷變數a是否為偶數,如果成立也輸出。

注意以下代碼的執行流程:

int m = 20;

if( m > 20)

m += 20;

System.out.println(m);

按照前面的文法格式說明,只有m+=20;這行代碼屬於功能代碼,而後續的輸出語句和前面的條件形成順序結構,所以該程式執行以後輸出的結果為20.如果當條件成立時,需要執行的語句有多句,則可以使用語句塊來進行表述,文法格式如下:

if(條件運算式){

功能代碼塊;

}

使用這種文法格式,使用一個代碼塊來代替前面的功能代碼,這樣可以在代碼塊內部書寫任意多行的代碼,而且也使整個程式的邏輯比較清楚,所以在實際的代碼編寫中推薦使用該種邏輯。

1.2 if-else語句

if-else語句實現了封閉的條件,在程式中使用的更加常見。其中else關鍵字的作用是“否則”,即條件不成立的情況。

if-else語句的文法格式如下:

if(條件運算式)

功能代碼1;

else

功能代碼2;

文法說明:其中前面的部分和if語句一樣,else部分後面是功能的代碼,按照該文法格式,功能代碼只能有一句。

執行順序:如果條件成立,則執行if語句中的功能代碼1,否則執行else中的功能代碼2.範例程式碼為:

int n = 12;

if(n % 2 != 0)

System.out.println(“n是奇數”);

else System.out.println(“n不是奇數”);

則因為n%2的值是0,條件不成立,則執行else語句的代碼,程式輸出“n不是奇數”。

在實際使用時,為了結構清楚,以及可以在功能代碼部分書寫多行代碼,一般把功能代碼部分使用代碼塊,則文法格式為:

if(條件運算式){

功能代碼塊

}else{

功能代碼塊

}

當程式中有多個if時,else語句和最近的if匹配。範例程式碼:

if(條件1)

功能代碼1;

if(條件2)

功能代碼2;

else功能代碼3;

則這裡的else語句和條件2對應的if語句匹配,前面的條件1是一個獨立的語句。在實際代碼中,可以使用大括弧使整個程式的結構更加清楚。

對於if-else語句來說,因為if的條件和else的條件是互斥的,所以在實際執行中,只有一個語句中的功能代碼會得到執行。

在實際開發中,有些公司在書寫條件時,即使else語句中不書寫代碼,也要求必須書寫else,這樣可以讓條件封閉。這個不是文法上必須的。

1.3 if-else

if-else語句在現實中,有些時候的條件不是一個,而是一組相關的條件,例如將阿拉伯數字轉換為中文大寫,根據分數轉換為對應的等級等,都是多條件的結構,在程式中為了避免寫多個if語句的結構,提供了一類專門的多分支語句,這就是if-else if-else語句。

if-else if-else語句的文法格式為:

if(條件1)

功能代碼1;

else if(條件2)

功能代碼2;

else if(條件3)

功能代碼3;
……

else功能代碼;

文法說明:

1、 else if是else和if兩個關鍵字,中間使用空格進行間隔。

2、 條件1到條件n都是boolean類型

3、 else if語句可以有任意多句

4、 最後的else語句為可選

5、 如果功能代碼部分不是語句塊,也就是不用大括弧,就只能寫一句。

執行流程:當條件1成立時,則執行功能代碼1;當條件1不成立且條件2成立時,則執行功能代碼2;如果條件1、條件2都不成立且條件3成立,則執行功能代碼3,依次類推,如果所有條件都不成立,則執行else語句的功能代碼。其執行流程的流程圖如上所示。

下面是一個實現根據月份的值,輸出該月份包含的日期數,2月份全部輸出28,不考慮閏年的範例程式碼:

int month = 3;  int days = 0; //日期數  if(month == 1){  days = 31;  }else if(month == 2){  days = 28;  } else if(month == 3){  days = 31;  } else if(month == 4){  days = 30;  } else if(month == 5){  days = 31;  } else if(month == 6){  days = 30;  } else if(month == 7){  days = 31;  } else if(month == 8){  days = 31;  } else if(month == 9){  days = 30;  } else if(month == 10){  days = 31;  } else if(month == 11){  days = 30;  } else if(month == 12){  days = 31;  }  System.out.println(days);

再來看一個範例程式碼,該代碼的功能是實現將百分制的成績轉換為A、B、C、D和E,代碼如下:

int score = 87;  if(score >= 90){  System.out.println(‘A');  } else if(score >= 80){  System.out.println(‘B');  } else if(score >= 70){  System.out.println(‘C');  } else if(score >= 60){  System.out.println(‘D');  } else{   System.out.println(‘E');  }

從該代碼中可知,每個else if語句在書寫時是有順序的,在實際書寫時,必須按照邏輯上的順序進行書寫,否則將出現邏輯錯誤。

if-else if-else語句是Java語言中提供的一個多分支條件陳述式,但是在判斷某些問題時,會書寫的比較麻煩,所以在文法中提供了另外一個語句——switch語句來更好的實現多分支語句的判別。

以上這篇java的if else語句入門指南(推薦)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援雲棲社區。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.