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沒有實際的使用效果。