在Java中,語句的種類可分爲:表達式語句、聲明語句、控制流程語句。下面將介紹這三種語句:java
一個表達式,在計算(執行)後的結果能夠表示如下三種含義:express
一個表達式的類型,指的就是它在計算後獲得的結果的類型。關於表達式更多信息可參考Java語言特性規定。函數
以上四種表達式及其複合表達式,在加上分號(;)就成爲了相應的表達式語句,以下所示:code
// assignment statement aValue = 8933.234; // increment statement aValue++; // method invocation statement System.out.println("Hello World!"); // object creation statement Bicycle myBike = new Bicycle();
形如:對象
// declaration statement double aValue = 8933.234;
語句塊是由一對含有零條或者多條語句的大括號所組成,可以出如今任何一條單獨語句可以出現的地方。ci
class BlockDemo { public static void main(String[] args) { boolean condition = true; if (condition) { // begin block 1 System.out.println("Condition is true."); } // end block one else { // begin block 2 System.out.println("Condition is false."); } // end block 2 } }
在語句塊中聲明的變量,它的做用域僅限於該語句塊。也就是說下面這樣的代碼是被容許的:作用域
public static void main(String[] args) { { { int i=0; } { int i=0; } }
if(boolean-exprenssion){ statements; } //或者 if(boolean-exprenssion){ statements; }else{ statements; }
下面的例子中出現了else if
,但其並非新的關鍵字,而僅僅是else後面緊跟一個新的if語句。rem
if(boolean-exprenssion){ statements; }else if(boolean-exprenssion){ statements; }else{ }
雖然一樣是選擇語句,但與if-then和if-then-else不一樣,switch能夠有更多可能執行的路徑,switch語句中的表達式類型能夠是byte、short、char、int以及這四種對應的包裝類型Byte、Short、Character、Integer。還能夠是String類型和枚舉類型。注意:當使用的是String類型的時候,表達式的值不能爲null,不然會致使NullPointerException。it
public class SwitchDemo { public static void main(String[] args) { int month = 8; String monthString; switch (month) { case 1: monthString = "January";//這裏的1就是一個case標籤 break; case 2: monthString = "February"; break; case 3: monthString = "March"; break; case 4: monthString = "April"; break; case 5: monthString = "May"; break; case 6: monthString = "June"; break; case 7: monthString = "July"; break; case 8: monthString = "August"; break; case 9: monthString = "September"; break; case 10: monthString = "October"; break; case 11: monthString = "November"; break; case 12: monthString = "December"; break; default: monthString = "Invalid month"; break;//由於在最後了,因此其實是沒有必要加break的 } System.out.println(monthString); } }
switch語句的主體被稱爲switch塊,在switch塊中能夠有一個或者多個case/default標籤,switch語句首先計算表達式,而後與case標籤進行匹配。break語句是爲告終束switch語句,沒有breakd執行完case後面的語句以後,將繼續往下執行。直到碰見break或者執行完全部語句。case標籤必須是常量表達式或者是枚舉常量,case標籤的類型對於switch表達式的類型而言,必須是可賦值的。更多可參考java語言特性規定。io
for (initialization; termination; increment) { statement(s) }
while (expression) { statement(s) }
do { statement(s) } while (expression);
關於標籤:
public static void main(String[] args) { label://後面必須緊跟循環語句 for(;;) { for(;;) break label; } }
如上面代碼所示,標籤就是後面根有冒號的標識符,而且標籤與循環語句之間不容許插入任何其餘語句,不然在使用break/continue標籤的地方會編譯出錯。在Java裏須要使用標籤的理由就是想從多層循環嵌套中break或continue。
return語句從當前的方法離開,回到方法被調用的地方,有兩種形式,一種帶返回值,一種不帶返回值(聲明方法返回值類型爲void時)。