switch多選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)示例詳解
switch多選擇結(jié)構(gòu)
多選擇結(jié)構(gòu)還有一個實(shí)現(xiàn)方式就是switch case語句
switch case語句判斷一個變量與一系列值中某個值是否相等,每個值稱為一個分支。
switch語句中的變量類型可以是:
switch(expression){
? ?case value:
? ? ? ?//語句
? ? ? ?break;//可選
? ?case value:
? ? ? ?//語句
? ? ? ?break;//可選
? ?//你可以有任意數(shù)量的case語句
? ?default://可選
? ? ? ?//語句
}byte、short、int或者char
從Java SE 7開始
switch 支持字符串 String 類型了
同時case標(biāo)簽必須為字符串常量或字面量
public static void main(String[] args) {
? ? ? ?//case穿透 //switch 匹配一個具體的值
? ? ? ?char grade = 'B';
?
? ? ? ?switch (grade){
? ? ? ? ? ?case 'A':
? ? ? ? ? ? ? ?System.out.println("優(yōu)秀");
? ? ? ? ? ? ? ?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("未知等級");
? ? ? }
? }
?
//輸出結(jié)果
良好public static void main(String[] args) {
? ? ? ?String name = "曹炎兵";
? ? ? ?//JDK7的新特性,表達(dá)式結(jié)果可以是字符串?。?!
? ? ? ?//字符的本質(zhì)還是數(shù)字
?
? ? ? ?switch (name){
? ? ? ? ? ?case "曹炎兵":
? ? ? ? ? ? ? ?System.out.println("這條街我說了算!");
? ? ? ? ? ? ? ?break;
? ? ? ? ? ?case "曹玄亮":
? ? ? ? ? ? ? ?System.out.println("下輩子你當(dāng)哥哥,我當(dāng)?shù)艿埽?);
? ? ? ? ? ? ? ?break;
? ? ? ? ? ?default:
? ? ? ? ? ? ? ?System.out.println("你找錯人了!");
? ? ? }
? }循環(huán)結(jié)構(gòu)
while循環(huán)
do...while循環(huán)
for循環(huán)
在Java5中引入了一種主要用于數(shù)組的增強(qiáng)型for循環(huán)
while循環(huán)
while是最基本的循環(huán),它的結(jié)構(gòu)為:
while(布爾表達(dá)式) {
? ?//循環(huán)內(nèi)容
}只要布爾表達(dá)式為true,循環(huán)就會一直執(zhí)行下去。
我們大多數(shù)情況是會讓循環(huán)停止下來的,我們需要一個讓表達(dá)式失效的方式來結(jié)束循環(huán)。
少部分情況需要循環(huán)一直執(zhí)行,比如服務(wù)器的請求響應(yīng)監(jiān)聽等。
循環(huán)條件一直為true就會造成無限循環(huán)【死循環(huán)】,我們正常的業(yè)務(wù)編程中應(yīng)該盡量避免死循環(huán)。會影響程序性能或者造成程序卡死崩潰!
思考:計(jì)算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) {
? ? ? ?//死循環(huán)
? ? ? ?while (true){
? ? ? ? ? ?//等待客戶端連接
? ? ? ? ? ?//定時檢查
? ? ? ? ? ?//...
? ? ? }
? }public static void main(String[] args) {
? ? ? ?//計(jì)算1+2+3+...+100=?
?
? ? ? ?//高斯的故事
? ? ? ?int i = 0;
? ? ? ?int sum = 0;
?
? ? ? ?while (i <= 100) {
? ? ? ? ? ?sum = sum + i;
? ? ? ? ? ?i++;
? ? ? }
? ? ? ?System.out.println(sum);
? }
?
//輸出結(jié)果
5050do...while循環(huán)
對于while語句而言,如果不滿足條件,則不能進(jìn)入循環(huán)。但有時候我們需要即使不滿足條件,也至少執(zhí)行一次。
do...while 循環(huán)和while循環(huán)相似,不同的是,do...while循環(huán)至少執(zhí)行一次。
do{
? ?//代碼語句
}while(布爾表達(dá)式);while和do-while的區(qū)別:
while先判斷后執(zhí)行。do-while是先執(zhí)行后判斷!
do-while總是保證循環(huán)體會被至少執(zhí)行一次!這是他們的主要差別。
public static void main(String[] args) {
? ? ? ?int i = 0;
? ? ? ?int sum = 0;
?
? ? ? ?do {
? ? ? ? ? ?sum = sum + i;
? ? ? ? ? ?i++;
? ? ? }while (i <= 100);
?
? ? ? ?System.out.println(sum);
? }
?
//輸出結(jié)果
5050public 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);
? }
?
//輸出結(jié)果
====================
0
?
Process finished with exit code 0每日J(rèn)ava面試題
1.static關(guān)鍵字有什么用?
static代表"靜態(tài)"的意思,可以用來修飾:
靜態(tài)內(nèi)部類(靜態(tài)內(nèi)部類可以不依賴外部類實(shí)例對象而被實(shí)例化,而內(nèi)部類需要在外部類實(shí)例化后才能被實(shí)例化)
靜態(tài)方法(靜態(tài)方法屬于類方法,不需要實(shí)例化對象就可以調(diào)用)
靜態(tài)變量(靜態(tài)變量屬于類,不需要實(shí)例化對象就能調(diào)用)
靜態(tài)代碼塊(靜態(tài)代碼塊只會在類被加載時執(zhí)行且執(zhí)行一次)
使用示例代碼如下:
public class Test1 {
?
? ?static {
? ? ? ?System.out.println("靜態(tài)代碼塊");
? }
? ?
? ?static class Test2 {
? ? ? ?
? }
? ?
? ?private static int id = 0;
? ?
? ?public static void staticMethod() {
? ? ? ?
? }
}2.static變量和普通變量的區(qū)別?
所屬目標(biāo)不同
靜態(tài)變量屬于類的變量,普通變量屬于對象的變量。
存儲區(qū)域不同
靜態(tài)變量存儲在方法區(qū)的靜態(tài)區(qū),普通變量存儲在堆區(qū)。
另外:JDK7及以上,靜態(tài)變量存儲在其對應(yīng)的Class對象中,而Class對象和其他普通對象一樣,都存儲在堆中的。
加載時間不同
靜態(tài)變量是隨著類的加載而加載,隨著類的消失而消失。
普通變量隨著對象的加載而加載,隨著對象的消失而消失
調(diào)用方式不同
靜態(tài)變量只能通過類名、對象調(diào)用,普通變量只能通過對象調(diào)用。
3.Java中final、finally、finalize的區(qū)別與用法
final
final是一個修飾符也是一個關(guān)鍵字
被final修飾的類無法被繼承
對于一個final變量,如果是基本數(shù)據(jù)類型的變量,則其數(shù)值一旦在初始化之后便不能更改;
如果是引用類型的變量,則在對其初始化之后便不能再讓其指向另一個對象。但是它指向的對象的內(nèi)容是可變的。
被final修飾的方法將無法被重寫,但允許重載
注意:類的private方法會隱式地被指定為final方法。
finally
finally是一個關(guān)鍵字
finally在異常處理時提供finally塊來執(zhí)行任何清除操作。不管有沒有異常被拋出或者捕獲,finally塊都會執(zhí)行,通常用于釋放資源。
finally塊正常情況下一定會被執(zhí)行。但是有至少兩個極端情況:
如果對應(yīng)的try塊沒有執(zhí)行,則這個try塊的finally快并不會被執(zhí)行
如果在try塊中jvm關(guān)機(jī),例如system.exit(n),則finally塊也不會執(zhí)行(都拔電源了,怎么執(zhí)行)
finally塊中如果有return語句,則會覆蓋try或者catch中的return語句,導(dǎo)致二者無法return,所以強(qiáng)烈建議finally塊中不要存在return關(guān)鍵字。
finalize
finalize()是Object類的protected方法,子類可以覆蓋該方法以實(shí)現(xiàn)資源清理工作。
GC在回收對象之前都會調(diào)用該方法
finalize()方法是存在很多問題的:
Java語言規(guī)范并保證finalize方法會被及時地執(zhí)行,更根本不會保證它們一定會執(zhí)行
finalize()方法可能帶來性能問題,因?yàn)镴VM通常在單獨(dú)的低優(yōu)先級線程中完成finalize的執(zhí)行
finalize()方法中,可將待回收對象賦值給GC Roots可達(dá)的對象引用,從而達(dá)到對象再生的目的
finalize方法最多由GC執(zhí)行一次(但可以手動調(diào)用對象的finalize方法)
到此這篇關(guān)于switch多選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)的文章就介紹到這了,更多相關(guān)switch多選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何利用SwiftUI實(shí)現(xiàn)可縮放的圖片預(yù)覽器
這篇文章主要給大家介紹了關(guān)于如何利用SwiftUI實(shí)現(xiàn)可縮放圖片預(yù)覽器的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用SwiftUI具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2021-09-09
Swift中動態(tài)調(diào)用實(shí)例方法介紹
這篇文章主要介紹了Swift中動態(tài)調(diào)用實(shí)例方法介紹,在Swift中有一類很有意思的寫法,可以讓我們不直接使用實(shí)例來調(diào)用這個實(shí)例上的方法,而是通過類型取出這個類型的某個實(shí)例方法的簽名,然后再通過傳遞實(shí)例來拿到實(shí)際需要調(diào)用的方法,需要的朋友可以參考下2015-01-01
Swift使用WKWebView在iOS應(yīng)用中調(diào)用Web的方法詳解
這篇文章主要介紹了Swift使用WKWebView在iOS應(yīng)用中調(diào)用Web的方法詳解,使用WKWebView便等于使用和Safari中相同的JavaScript解釋器,用來替代過去的UIWebView,需要的朋友可以參考下2016-04-04
舉例講解Swift編程中switch...case語句的用法
這篇文章主要介紹了Swift編程中switch...case語句的用法,其中fallthrough關(guān)鍵字在switch語句中的使用是重點(diǎn),需要的朋友可以參考下2016-04-04

