選擇分支和迴圈
上節課講了運算子和型別轉換,這節課主要來學學分支結構和迴圈
一個程式之所以有各種各樣的功能,除了因為它可以做運算(包括算數運算和邏輯運算)以外,還在於它可以根據不同的條件進行判斷來選擇執行不同的程式碼,而要實現這樣的功能,就必須用到分支結構和迴圈。
首先來說說程式流程控制結構:
-
順序結構
-
程式從上到下逐行地執行,中間沒有任何判斷和跳轉。
-
分支結構
-
根據條件,選擇性地執行某段程式碼。
-
有if…else和switch兩種分支語句。
-
迴圈結構
-
根據迴圈條件,重複性的執行某段程式碼。
-
有while、do…while、for三種迴圈語句。
-
注:JDK1.5提供了foreach迴圈,方便的遍歷集合、陣列元素。
順序結構
Java中定義變數時採用合法的前向引用。如:
int num1 = 12;
int num2 = num1 + 2;
錯誤形式:
int num2 = num1 + 2;
int num1 = 12;
結論: java裡的所有量(變數、常量)必須先聲明後使用
分支語句1: if-else語句
if語句三種格式:
-
if(true)
{
//程式碼塊;
}
解釋:因為條件已經是true,所以會直接執行程式碼塊
-
if(條件表示式)
{
//程式碼塊1;
}
else
{
//程式碼塊2;
}
解釋: 如果條件表示式的值為true,則執行程式碼塊1,否則執行程式碼塊2
-
if(條件表示式1)
{
//程式碼塊1;
}
else if (條件表示式2)
{
//程式碼塊21;
}
……
else
{
//執行程式碼塊2;
}
解釋: 如果條件表示式1的值為true,則執行程式碼塊1,否則如果條件表示式2的值
true,則執行程式碼塊21,否則執行程式碼塊2
注意:如果程式碼塊內只有一條語句,則大括號可以省略,
所以格式3其實是格式2的變種
分支結構2:switch語句
switch(表示式)
{
case 常量1:
語句集1;
break;
case 常量2:
語句集2;
break;
… …
case 常量N:
語句集N;
break;
default:
語句集;
break;
}
表示式與哪個case後的值相等就執行哪個case後的語句集,break語句表示跳出switch結構,如果都不匹配則執行default後的語句集
注意:
-
switch(表示式)中表達式的返回值必須是下述幾種型別之一:byte,short,char,int,列舉,String;(列舉和String以後講)
-
case子句中的值必須是常量,且所有case子句中的值應是不同的;
-
default不是必須的
提示: 大家可以自己去試試如果不加break會是什麼後果