流程控制語句
我們在寫Java代碼的時候,可以說,都離不開三大流程控制語句:順序、選擇、循環。
選擇結構
語法格式如下:
if結構,if-else結構
//簡單格式1
if(條件)
語句;
//簡單格式2
if(條件){
語句;
}
//簡單格式3
if(條件)
語句;
else
語句;
//簡單格式4
if(條件){
語句;
} else {
語句;
}
多重if
//複雜格式1
if(表達式1)
語句1;
else if(表達式2)
語句2;
else if(表達式3)
語句3;
...
else
語句n;
//複雜格式1
if(表達式1){
語句1;
} else if(表達式2){
語句2;
} else if(表達式3) {
語句3;
}
...
else {
語句n;
}
嵌套if
將整個if塊插入到另一個if塊中
if(表達式1)
if(表達式2)
if(表達式3)
語句;
else
語句;
switch結構
JDK7.0以後switch括號中表達式的值,可以是基本數據類型的byte,short,int,char,以及String類型。
switch(表達式){
case 常量表達式1:
語句1;
break;
case 常量表達式2:
語句2;
break;
default:
語句3;
}
if與switch的區別
if結構:
-判斷條件是布爾類型
-判斷條件是一個範圍
switch結構:
-判斷條件是常量值
public class SwitchDemo {
public static void main(String[] args) {
int n = 2;
switch (n) {
case 3:
System.out.println("test 3");
case 4:
System.out.println("test 4");
default:
System.out.println("test default");
}
System.out.println("=======================");
switch (n) {
default:
System.out.println("test default");
case 3:
System.out.println("test 3");
case 4:
System.out.println("test 4");
}
/**
* 輸出結果:
test default
=======================
test default
test 3
test 4
*/
}
}
注意:通過觀察上面的示例demo,我們可以看到當switch中的case語句缺少break時,default放置在不同的地方,執行的邏輯是不相同的。
default的使用,是在switch語句裏,當所有的case語句都不滿足條件時,則執行default語句。
default在switch的開頭或中間:
若所有case都不滿足條件,則執行default語句,若default語句後面緊跟break,則直接結束;若default語句後沒有緊跟break,則執行default語句之後的case語句,直至遇到break或switch語句結束。
default在switch的末尾:
若所有case語句都不滿足條件,則執行default語句,結束;若有case滿足,則執行case語句,直至遇到break或switch語句結束,所以default在最後一行時break,我們可以省略不寫(但爲了代碼嚴謹性,不建議省略)。
循環結構
順序結構,就是語句從上往下,依次執行。
而選擇結構,根據條件執行對應的內容。
while循環
語法格式如下:
while(循環條件爲true)
{
語句;
}
注意:如果循環體只有一條語句,大括號可以省略。爲避免死循環,小括號後面不要加分號。
//錯誤寫法示範
public void static main(String[] args) {
while(true); //爲避免死循環,小括號後面不要加分號
}
範例:將小於5的整數打印輸出。
首先,我們分析執行流程,如下圖:
public class WhileDemo {
public static void main(String[] args) {
//求1到5的累加和
int n = 1;
int sum = 0; // sum是存放和的變量
while(n <= 5) {
sum = sum + n;
n++;
}
System.out.println("1到5的累加和爲:"+sum);
}
}
do-while循環
語法格式如下:
do {
語句;
} while(循環條件);
注意事項:
1)do-while循環至少執行一次;
2)循環條件後的分號不能丟。
public class DoWhileDemo {
public static void main(String[] args) {
int sum = 0;
int n = 1;
do {
sum += n;
n++;
} while(n <= 5);
System.out.println("1到5的累加和爲:"+ sum);
}
}
for循環
語法格式如下:
for(表達式1;表達式2;表達式3){
語句;
}
注意事項:
1)表達式1在循環中只執行一次;
2)局部變量只在定義它的大括號內有效;
3)break語句表示跳出當前循環。
public class ForDemo {
public static void main(String[] args) {
int sum = 0;
for (int n=1;n<=5;n++) { //局部變量只在定義它的大括號內有效!
sum += n;
}
System.out.println("1到5的累加和爲:"+ sum);
}
}
循環嵌套
語法格式如下:
while(循環條件)
{
......
while(循環條件){
......
}
......
}
public class StarDemo {
public static void main(String[] args) {
int m = 1; //
while( m <= 10 ) {
int n = 1;
while(n <= 10) {
System.out.print("*");
n++;
}
System.out.println();
m++;
}
}
}
循環結構中使用的關鍵字
在循環結構中,爲了控制循環體中的執行邏輯,我們經常會使用到 break 和 continue 這兩個關鍵字。
break語句
break語句可以結束當前循環的執行。
執行完break語句後,循環體中位於break語句後面的語句就不會被執行。
在多重循環中,break語句只向外跳一層。
continue語句
continue語句只能用在循環裏。
continue語句可以結束當前循環的執行,但是要繼續下一次循環的執行。
參考鏈接:
https://www.cnblogs.com/JsonShare/p/6999765.html