java基礎(chǔ)篇四(程序控制結(jié)構(gòu))

一、程序邏輯

分類
  1. 順序結(jié)構(gòu)
  2. 分支結(jié)構(gòu)(選擇結(jié)構(gòu))
  3. 循環(huán)結(jié)構(gòu)

二、選擇結(jié)構(gòu)

if語句

語法格式:

 if(判斷條件)
       {
           語句1
       ...
           語句2
       }
if...else語句

語法格式:

if(條件表達式)
       {
           語句1
       }else
       {
           語句2
       }

例:


Paste_Image.png
Paste_Image.png
if...else if...else語句(“隨意”嵌套)

例子:

Paste_Image.png
Paste_Image.png
多重選擇——switch語句

條件:

嵌套的if語句比較復(fù)雜,if與else容易配對錯誤,這樣就可以使用switch語句來處理。
switch結(jié)構(gòu)為“多路選擇結(jié)構(gòu)”,switch語句也叫開關(guān)語句,在許多不同的語句組之間做出選擇。

格式:

switch (表達式)
        {
            case 常量選擇值1:語句體1{break;}
            case 常量選擇值2:語句體2{break;}
            ......
            case 常量選擇值n:語句體n{break;}
            default:默認語句體{break;}
        }

注意:

switch的表達式類型為整型(包括byte、short、char、int等)、字符類型以及枚舉類型。
在JDK1.7之后,switch語句增加了對String類型的支持。

例子1:

public class TestFinal4_1 {
    public static void main(String[] args) {
        int a = 100;
        int b = 7;
        char oper = '*';
        switch (oper)//用switch實現(xiàn)多分支語句
        {
            case '+':
                System.out.println(a+"+"+b+"="+(a+b));
                break;
            case '-':
                System.out.println(a+"-"+b+"="+(a-b));
                break;
            case '*':
                System.out.println(a+"*"+b+"="+(a*b));
                break;
            case '/':
                System.out.println(a+"/"+b+"="+((float)a/b));
                break;
            default:
                System.out.println("未知的操作!");
                break;
        }
    }
}
Paste_Image.png

例子2:

public class TestFinal4_1 {
    public static void main(String[] args) {
     int year = 2000;
     int month = 3;
     int day = 24;
     int daySum = 0;
     for (int i = 1;i<month;i++){
         switch (i){
             case 1:
                 daySum += 31;
                 break;
             case 3:
                 daySum += 31;
                 break;
             case 4:
                 daySum += 30;
                 break;
             case 5:
                 daySum += 31;
                 break;
             case 6:
                 daySum += 30;
                 break;
             case 7:
                 daySum += 31;
                 break;
             case 8:
                 daySum += 31;
                 break;
             case 9:
                 daySum += 30;
                 break;
             case 10:
                 daySum += 31;
                 break;
             case 11:
                 daySum += 30;
                 break;
             case 2:
                 if(((year % 4 == 0) & (year % 100 != 0)) | (year % 400 == 0)){
                     daySum+= 29;
                 }else {
                     daySum +=28;
                 }
         }
     }
    int result=daySum+day;
        System.out.println("今天是:"+year+"年的第"+result+"天");
    }
}
Paste_Image.png

三、循環(huán)結(jié)構(gòu)

while循環(huán)

例子:

Paste_Image.png
Paste_Image.png
do...while循環(huán)

語句格式:

do {
        語句1;
        語句2;
        ...
        語句n;
    }while (判斷條件); 

例子:

Paste_Image.png
Paste_Image.png

拓展:

do...while循環(huán)不管條件是什么,都是先做再說,因此循環(huán)的主體至少會被執(zhí)行一次。日常生活中,也有do...while語句的例子,例如在利用提款機提款時,會先進入輸入密碼的畫面,讓使用者輸入三次密碼,如果皆輸入錯誤嗎,即會將銀行卡吞掉。其程序的流程就是利用do...while循環(huán)設(shè)計的。

for循環(huán)

例子:

Paste_Image.png
Paste_Image.png
foreach循環(huán)

例子1:

Paste_Image.png
Paste_Image.png

例子2:

Paste_Image.png
Paste_Image.png

對比例子1與例子2:

使用foreach遍歷數(shù)組元素,其形式更加簡潔明了。
所有的foreach均可用傳統(tǒng)的for循環(huán)模式代替。由于foreach循環(huán)會丟失元素的下標信息,當遍歷集合或數(shù)組時,如果需要集合或數(shù)組元素的時候,建議使用傳統(tǒng)for循環(huán)方式。

循環(huán)嵌套(循環(huán)中有循環(huán))

例子:

Paste_Image.png

output:乘法口訣表

四、循環(huán)的跳轉(zhuǎn)

break語句
  1. 不帶標簽的break
    例子:
Paste_Image.png
Paste_Image.png
  1. 帶標簽的break
    定義:

不帶標簽的break只能跳出包圍它的最小代碼塊,如果想跳出包圍它的更外層的代碼塊,就可以使用帶標簽的break語句。

語法格式:
break 標簽名;
例子:

Paste_Image.png
Paste_Image.png

對比:如果不加break loop這個語句,結(jié)果如下:

Paste_Image.png

自我理解:帶標簽的break就是講那個循環(huán)不當做循環(huán)看,那個循環(huán)只執(zhí)行一次!

continue語句
  1. 不帶標簽的continue語句
    例子:
Paste_Image.png
Paste_Image.png
  1. 帶標簽的continue語句
    定義:

和break語句一樣可以和標簽搭配使用,其作用也是跳出深度循環(huán)。

語法格式:
continue 標簽名;

例子:

Paste_Image.png
Paste_Image.png

對比:如果不加continue loop這個語句,結(jié)果如下:

Paste_Image.png
return語句

例子:

Paste_Image.png
Paste_Image.png

這里為什么沒有輸出最后一句“循環(huán)結(jié)束:i=10”?
return語句的作用是結(jié)束本方法,對于這個程序而言相當于結(jié)束程序,所以當執(zhí)行return語句之后程序就結(jié)束了,自然無法輸出最后一句代碼了。

五、重點

  1. 三元運算符就相當于if...else語句,只不過三元運算符有返回值。為了程序的清晰明了,只有在if...else語句的主題部分很少時才使用三元運算符。
  2. switch中并不是每個case后面都需要break語句
    在某些情況下,在switch結(jié)構(gòu)體中,可以有意的減少一些的特定位置的break語句,這樣可以簡化程序。
  3. 循環(huán)的區(qū)間控制
    一般我們使用for(int i = 0;i<10;i++)
    而不是for(int i = o;i<=9;i++)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容