日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

switch多選擇結構、循環結構示例詳解_Swift

作者:崔九八 ? 更新時間: 2023-01-29 編程語言

switch多選擇結構

  • 多選擇結構還有一個實現方式就是switch case語句

  • switch case語句判斷一個變量與一系列值中某個值是否相等,每個值稱為一個分支。

switch語句中的變量類型可以是:

switch(expression){
 ? ?case value:
 ? ? ? ?//語句
 ? ? ? ?break;//可選
 ? ?case value:
 ? ? ? ?//語句
 ? ? ? ?break;//可選
 ? ?//你可以有任意數量的case語句
 ? ?default://可選
 ? ? ? ?//語句
}
  • byte、short、int或者char

  • 從Java SE 7開始

  • switch 支持字符串 String 類型了

  • 同時case標簽必須為字符串常量或字面量

public static void main(String[] args) {
 ? ? ? ?//case穿透 //switch 匹配一個具體的值
 ? ? ? ?char grade = 'B';
?
 ? ? ? ?switch (grade){
 ? ? ? ? ? ?case 'A':
 ? ? ? ? ? ? ? ?System.out.println("優秀");
 ? ? ? ? ? ? ? ?break;//可選
 ? ? ? ? ? ?case 'B':
 ? ? ? ? ? ? ? ?System.out.println("良好");
 ? ? ? ? ? ? ? ?break;//可選
 ? ? ? ? ? ?case 'C':
 ? ? ? ? ? ? ? ?System.out.println("及格");
 ? ? ? ? ? ? ? ?break;//可選
 ? ? ? ? ? ?case 'D':
 ? ? ? ? ? ? ? ?System.out.println("再接再厲");
 ? ? ? ? ? ? ? ?break;//可選
 ? ? ? ? ? ?case 'E':
 ? ? ? ? ? ? ? ?System.out.println("掛科");
 ? ? ? ? ? ? ? ?break;//可選
 ? ? ? ? ? ?default:
 ? ? ? ? ? ? ? ?System.out.println("未知等級");
 ? ? ?  }
 ?  }
?
//輸出結果
良好
public static void main(String[] args) {
 ? ? ? ?String name = "曹炎兵";
 ? ? ? ?//JDK7的新特性,表達式結果可以是字符串!!!
 ? ? ? ?//字符的本質還是數字
?
 ? ? ? ?switch (name){
 ? ? ? ? ? ?case "曹炎兵":
 ? ? ? ? ? ? ? ?System.out.println("這條街我說了算!");
 ? ? ? ? ? ? ? ?break;
 ? ? ? ? ? ?case "曹玄亮":
 ? ? ? ? ? ? ? ?System.out.println("下輩子你當哥哥,我當弟弟!");
 ? ? ? ? ? ? ? ?break;
 ? ? ? ? ? ?default:
 ? ? ? ? ? ? ? ?System.out.println("你找錯人了!");
 ? ? ?  }
 ?  }

循環結構

  • while循環

  • do...while循環

  • for循環

  • 在Java5中引入了一種主要用于數組的增強型for循環

while循環

  • while是最基本的循環,它的結構為:

while(布爾表達式) {
 ? ?//循環內容
}
  • 只要布爾表達式為true,循環就會一直執行下去。

  • 我們大多數情況是會讓循環停止下來的,我們需要一個讓表達式失效的方式來結束循環。

  • 少部分情況需要循環一直執行,比如服務器的請求響應監聽等。

  • 循環條件一直為true就會造成無限循環【死循環】,我們正常的業務編程中應該盡量避免死循環。會影響程序性能或者造成程序卡死崩潰!

  • 思考:計算1+2+3+...+10=?

public static void main(String[] args) {
 ? ? ? ?
 ? ? ? ?//輸出1~100
 ? ? ? ?int i = 0;
 ? ? ? ?
 ? ? ? ?while (i < 100) {
 ? ? ? ? ? ?i++;
 ? ? ? ? ? ?System.out.println(i);
 ? ? ?  }
 ?  }
public static void main(String[] args) {
 ? ? ? ?//死循環
 ? ? ? ?while (true){
 ? ? ? ? ? ?//等待客戶端連接
 ? ? ? ? ? ?//定時檢查
 ? ? ? ? ? ?//...
 ? ? ?  }
 ?  }
public static void main(String[] args) {
 ? ? ? ?//計算1+2+3+...+100=?
?
 ? ? ? ?//高斯的故事
 ? ? ? ?int i = 0;
 ? ? ? ?int sum = 0;
?
 ? ? ? ?while (i <= 100) {
 ? ? ? ? ? ?sum = sum + i;
 ? ? ? ? ? ?i++;
 ? ? ?  }
 ? ? ? ?System.out.println(sum);
 ?  }
?
//輸出結果
5050

do...while循環

對于while語句而言,如果不滿足條件,則不能進入循環。但有時候我們需要即使不滿足條件,也至少執行一次。

do...while 循環和while循環相似,不同的是,do...while循環至少執行一次。

do{
 ? ?//代碼語句
}while(布爾表達式);

while和do-while的區別:

  • while先判斷后執行。do-while是先執行后判斷!

  • do-while總是保證循環體會被至少執行一次!這是他們的主要差別。

public static void main(String[] args) {
 ? ? ? ?int i = 0;
 ? ? ? ?int sum = 0;
?
 ? ? ? ?do {
 ? ? ? ? ? ?sum = sum + i;
 ? ? ? ? ? ?i++;
 ? ? ?  }while (i <= 100);
?
 ? ? ? ?System.out.println(sum);
 ?  }
?
//輸出結果
5050
public static void main(String[] args) {
 ? ? ? ?int a = 0;
 ? ? ? ?while (a < 0) {
 ? ? ? ? ? ?System.out.println(a);
 ? ? ? ? ? ?a++;
 ? ? ?  }
 ? ? ? ?System.out.println("====================");
 ? ? ? ?do {
 ? ? ? ? ? ?System.out.println(a);
 ? ? ? ? ? ?a++;
 ? ? ?  }while (a < 0);
 ?  }
?
//輸出結果
====================
0
?
Process finished with exit code 0

每日Java面試題

1.static關鍵字有什么用?

static代表"靜態"的意思,可以用來修飾:

  • 靜態內部類(靜態內部類可以不依賴外部類實例對象而被實例化,而內部類需要在外部類實例化后才能被實例化)

  • 靜態方法(靜態方法屬于類方法,不需要實例化對象就可以調用)

  • 靜態變量(靜態變量屬于類,不需要實例化對象就能調用)

  • 靜態代碼塊(靜態代碼塊只會在類被加載時執行且執行一次)

使用示例代碼如下:

public class Test1 {
?
 ? ?static {
 ? ? ? ?System.out.println("靜態代碼塊");
 ?  }
 ? ?
 ? ?static class Test2 {
 ? ? ? ?
 ?  }
 ? ?
 ? ?private static int id = 0;
 ? ?
 ? ?public static void staticMethod() {
 ? ? ? ?
 ?  }
}

2.static變量和普通變量的區別?

  • 所屬目標不同

靜態變量屬于類的變量,普通變量屬于對象的變量。

存儲區域不同

靜態變量存儲在方法區的靜態區,普通變量存儲在堆區。

另外:JDK7及以上,靜態變量存儲在其對應的Class對象中,而Class對象和其他普通對象一樣,都存儲在堆中的。
  • 加載時間不同

靜態變量是隨著類的加載而加載,隨著類的消失而消失。

普通變量隨著對象的加載而加載,隨著對象的消失而消失

  • 調用方式不同

靜態變量只能通過類名、對象調用,普通變量只能通過對象調用。

3.Java中final、finally、finalize的區別與用法

  • final

final是一個修飾符也是一個關鍵字

  • 被final修飾的類無法被繼承

  • 對于一個final變量,如果是基本數據類型的變量,則其數值一旦在初始化之后便不能更改;

    如果是引用類型的變量,則在對其初始化之后便不能再讓其指向另一個對象。但是它指向的對象的內容是可變的。

  • 被final修飾的方法將無法被重寫,但允許重載

    注意:類的private方法會隱式地被指定為final方法。

  • finally

    finally是一個關鍵字

  • finally在異常處理時提供finally塊來執行任何清除操作。不管有沒有異常被拋出或者捕獲,finally塊都會執行,通常用于釋放資源。

  • finally塊正常情況下一定會被執行。但是有至少兩個極端情況:

    • 如果對應的try塊沒有執行,則這個try塊的finally快并不會被執行

    • 如果在try塊中jvm關機,例如system.exit(n),則finally塊也不會執行(都拔電源了,怎么執行)

  • finally塊中如果有return語句,則會覆蓋try或者catch中的return語句,導致二者無法return,所以強烈建議finally塊中不要存在return關鍵字。

  • finalize

finalize()是Object類的protected方法,子類可以覆蓋該方法以實現資源清理工作。

GC在回收對象之前都會調用該方法

finalize()方法是存在很多問題的:

  • Java語言規范并保證finalize方法會被及時地執行,更根本不會保證它們一定會執行

  • finalize()方法可能帶來性能問題,因為JVM通常在單獨的低優先級線程中完成finalize的執行

  • finalize()方法中,可將待回收對象賦值給GC Roots可達的對象引用,從而達到對象再生的目的

  • finalize方法最多由GC執行一次(但可以手動調用對象的finalize方法)

原文鏈接:https://www.cnblogs.com/cuijiuba/p/17000551.html

欄目分類
最近更新