設計模式:如何優雅地使用工廠模式
switch case語句
格式:
1 switch(表示式/變數){
2
3 case 常量值1:
4
5 //語句體內容1
6
7 break;
8
9 case 常量值2:
10
11 //語句體內容2
12
13 break;
14
15 ... ...
16
17 default:
18
19 //語句體n
20
21 break;
22
23 }
執行流程:
1.首先算出表示式的值。
2.依次和case後面的常量值做比較,如果相等,就執行相應的語句體內容,
在執行過程中,遇到break就會結束switch case語句。
3.如果表示式值和case後的常量值都不相等,就執行default中的語句體內容,
然後此switch case語句結束。
注意:1.每個case,和default後都會有break,敲程式碼的時候很容易忽略;
2.case後的常量值,要加冒號":".
1 char c = 'a';
2 switch(c){
3 case 'a':
4 System.out.print("pido ");
5 default:
6 System.out.print("online");
7 }
8 程式碼的執行結果是_________;
答案:pido online
解析:1.首先這個switch語句,每個case,和default後都沒有 break;語句;
2.沒有break語句,根據表示式找到對應的case後,會執行這個case和其下面的所有語句,直到遇到break,或執行完最後一行程式碼。
3.其次輸出語句沒有換行,輸出的內容會在一行;
面試題:switch後面的表示式的值可以是什麼型別?可以是字串型別嗎?
答:表示式的資料型別,可以是byte/short/int/char/enum(列舉),JDK1.7之後可以接收字串型別。
for迴圈
格式:
1 for(1.初始化語句; 2.條件判斷表示式; 4.迭代語句) {
2 // 3.迴圈體內容
3 }
執行流程:
1.執行順序:1 -> 2 -> 3 -> 4 -> 2 -> 3 -> 4 -> 2 -> 3 -> 4 -> ...2,直到不滿足表示式為止。
2.初始化語句:負責迴圈變數的初始化;
3.條件判斷表示式:迴圈的條件,不滿足退出迴圈。
4.迴圈體內容:滿足迴圈條件後,執行的程式碼塊
5.迭代語句:負責變數的迭代
附: 1.for迴圈的大括號,可以不寫(最好寫上)
(不要複製我的這個程式碼測試,手敲才行,因為有可能會複製到系統識別不了你又看不見的字元,就報錯了)
1 int sum = 0;
2 for(int n = 1; n < 10; n++)
3 sum+=n;
4 System.out.println(sum);
2.如果剛學for迴圈,肯定不知道迭代是什麼意思
其實迭代就是,for迴圈中的變數,怎麼增加,或減少(比如1,2,3,4這樣加,或2,4,6這樣加)
如果減少的話,可以寫"n--"。
1 int sum = 0;
2 for(int n = 1; n < 10; n+=2) {
3 sum += n;
4 System.out.println(sum);
5 }
3.如果在草稿紙上按照執行順序畫的話,像一把小旗,for迴圈也叫紅旗迴圈。
4.for迴圈中小括號中三部分內容,都可以按需求不寫。
break 和 continue:
break就直接結束迴圈,或結束語句。
1 int i = 0;
2 while (i >= 0) {
3 i = i + 1;
4 if (i == 10) {
5 break;
6 }
7 System.out.println(i);
8 }
注意:i迭代到10後,執行break語句,程式就結束了,不會再執行輸出語句。
continue是結束本次迴圈,繼續下次迴圈。
1 public static void main(String[] args) {
2 // continue
3 // 求一下100以內的偶數和 2+4+6+8+10+....+100
4 int sum = 0;
5 for (int i = 1; i <= 100; i++) { // i= 1 2 3 4 5 6 7 8 9 10 ......
6 //使用場景 奇數跳過去,不參與累加和
7 if (i % 2 != 0) {
8 continue;
9 }
10 sum += i;
11 }
12 }
最後:
1.死迴圈:迴圈條件永遠為true,沒有結束條件的迴圈。例如:while(true){}
死迴圈一般要和跳出語句結合
2.迴圈巢狀:指一個迴圈體是另一個迴圈,迴圈的次數 = 外部迴圈次數 * 內部迴圈的次數
最經典的例子莫過於九九乘法表了。
1 for (int i = 1; i <= 9; i++) {
2 for (int j = 1; j <= i; j++) {
3 System.out.print(i + "*" + j + "=" + (i * j) + " ");
4 }
5 System.out.println();
6 }