2020-04-17筆記

switchi case和循環(huán)結構

1、switch case

? ??1.1結論概述

????????????????這里使用的switch - case結構是一個可以在很多開發(fā)語言中通用使用的

? ? 演示使用的數據類型是int類型,并且要求在沒有講述其他可以使用類型之前

????只能使用int

switch (/* 變量 ?*/) ?{

????case常量選擇1:

????????// 處理方式1 ;

? ? ? ? break ;

case常量選擇2 :

????????// 處理方式2;

????????break;

case常量選擇3:

????????// 處理方式3;

????????break;

default:

????????// 最終處理方式;

????????break;

}

執(zhí)行流程:

????代碼運行到switch case結構

????首先取出switch之后小括號中變量保存的數據

????匹配switch大括號以內的case選擇,找到對應的常量選擇匹配。

????????如果找到了對應的匹配選擇,執(zhí)行對應的處理方式。

????????如果沒有找到匹配選擇,執(zhí)行default里面的處理方式。

這里【break】關鍵字用于結束switch case運行

*/

1.2 switch - case使用注意事項

????1. 在switch - case結構中,有且只能執(zhí)行case,或者default之后的語句。如果存在在case和default之外的語句,是無法執(zhí)行的,對于Java而言是無效代碼。

????2.在switch - case結構中,如果存在case或者default選擇缺少break操作。代碼會繼續(xù)運行到下一個break,或者大括號}(switch case結尾大括號)終止switch - case

????3.在switch - case結構中,不允許出現相同的case選項,代碼無法進行操作選擇,因為所有case選擇是平級的

????4.在switch - case結構中,default可以省略,代碼編譯不會受到影響,沒有語法錯誤。但是失去switch case自帶的一種異常情況處理方式。

1.3總結

????1. switch case結構和if else if結構類似,兩者是可以互通

????2. if else if結構中可以處理范圍性數據,處理的數據區(qū)間更加廣泛

????3. switch case處理數據明確性更強,處理針對性選擇比較合適

2、循環(huán)結構

? ??2.1為什么要用循環(huán)

????????????代碼中一定存在需要循環(huán)出現的情況,如果不使用循環(huán),會導致以下一些問題1.閱讀性極差????2.維護性極差????3.代碼冗余

? ? 2.2while循環(huán)

????????while(/* 循環(huán)條件true or false ?*/) {

????????????????//循環(huán)體

????????????????// (循環(huán)條件變更)

}

執(zhí)行流程:

????????????????當前程序運行到while循環(huán)結構時,首先判斷while之后的小括號里面的循環(huán)條件是否為true,如果為true,執(zhí)行循環(huán)體,在回到循環(huán)條件判斷,直到循環(huán)條件為false,終止循環(huán)


class Demo {

????????public static void main(String[] args) ?{

????????????????//循環(huán)使用的變量,int類型,變量名i初始化為1

????????????????inti = 1?

????????????????//保存1 ~ 100相加之和的變量sum

????????????????intsum = 0;

????????????????//利用while循環(huán)

????????????????while(i <= 100) {

????????????????sum+=i;

????????????????i+=1;

????????}

????????????????System.out.println("Sum : "+sum);

}

2.3 do - whlie循環(huán)

do{

????????????// 循環(huán)體

????????????// (循環(huán)條件變更)

} while (/* 循環(huán)條件判斷 */);

執(zhí)行流程:

當程序執(zhí)行到do - while循環(huán)結構時,首先執(zhí)行一次循環(huán)體(循環(huán)條件變更),再來判斷while中循環(huán)條件判斷是否為true,如果為true,繼續(xù)執(zhí)行,如果為false,終止循環(huán)。

注意】

1. while(condition);

這里英文分號

2.執(zhí)行do - while需要明確第一次循環(huán)會不會存在隱患

使用do - while循環(huán)展示小寫字母a ~ z

class Demo

????{public static void main(String[] args) {

/* char類型的變量,變量名ch,初始化數據為'a' */

????????charch = 'a';

????????do{

? ? ? ? ? ? ? ?System.out.println("ch : "+ch);

????????????????ch += 1;

????????????????// ch++; ++ch;

????????} while (ch <= 'z');

????}

}

2.4虛幻和分支的嵌套

使用do - while循環(huán),完成一個點菜系統(tǒng)

1.完成用戶的點菜功能

2.點菜之后輸出總價

3.用戶指定方式退出

import java.util.Scanner;

class Demo {

?????public static void main(String[] args) {

/* 這里需要一個變量int類型,作為用戶的選擇變量名choose */

? ? ?int choose = 0;

/* 計算得到總價格,int類型,變量名為total */

????int total = 0;

/*準備一個Scanner類型的變量,用于從鍵盤上獲取用戶輸入的數據*/

????Scanner sc = new Scanner(System.in);

????System.out.println("歡迎來到老酒館");

????System.out.println("1.青島啤酒8RMB");

????System.out.println("2.野格88RMB");

????System.out.println("3.江小白25RMB");

????System.out.println("4.烏蘇6RMB");

????System.out.println("5. 1664 18RMB");

????System.out.println("6.下單");

????do {

????????choose=sc.nextInt();

????????switch(choose) {

????????????case1:

????????????System.out.println("1.青島啤酒8RMB");

????????????total+=8;

????????????break;

????????????case2:

????????????System.out.println("2.野格88RMB");

????????????total+=88;

????????????break;

????????????case3:

????????????System.out.println("3.江小白25RMB");

????????????total+=25;

????????????break;

????????????case4:

????????????System.out.println("4.烏蘇6RMB");

????????????total+=6;

????????????break;

????????????case5:

????????????System.out.println("5. 166418RMB");

????????????total+=18;

????????????break;

????????????case6:

????????????System.out.println("6.下單");

????????????break;

????????????default:

????????????System.out.println("選擇錯誤");

????????????break;

????????????}

????????} while (choose != 6);

????System.out.println("本場消費: "+total);

????}

}

總結

1.?循環(huán)過程中最核心的內容就是循環(huán)變量,需要對于循環(huán)變量的執(zhí)行的過程中數值變量完全掌握?。?!如果無法明確循環(huán)的次數,循環(huán)變量的值,循環(huán)的過程,可以將循環(huán)代碼中變量的變更過程記錄。

2.循環(huán)過程中需要注意無限循環(huán)問題,控制無限循環(huán)問題的出現。一定要保證循環(huán)條件有效性或者代碼中存在一個跳出循環(huán)的機制。

3. do while循環(huán)中,第一次循環(huán)體的執(zhí)行是沒有經過任何的條件判斷的,需要注意!

【已知,可控】

4. while和do while循環(huán)結構是可以進行互換的。

5.然后在while和do while之間考慮使用的情況下,一般推薦使用while循環(huán)。但是不代表do while沒有實際的使用效果。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容