Java基礎(chǔ)知識精通塊作用域與條件及switch語句
前言
本文章主要講解控制流程:塊作用域、條件語句、switch語句,篇幅不大,通俗易記。
塊作用域
在深入學(xué)習(xí)控制結(jié)構(gòu)前,須先了解塊的作用。
定義:由多條Java語句組成的語句,并用一對大括號括起來。
作用:塊確定了變量的作用域,一個塊可以嵌套在另一個塊上。
實例:
package decom1; public class cuowu { public static void main(String[] args) { //第二個塊嵌套在第一個塊里面。 byte i = 12; //變量i只在第二個塊區(qū)域內(nèi)有作用包括嵌套里面的塊。 { //第三個塊嵌套在第二個塊里面同時也在第一個塊里面。 int a = 3; //變量a只在所在的塊起到作用。 System.out.println(a); } //寫在main(程序執(zhí)行的入口)里面的代碼塊,就稱為局部代碼塊。 //局部代碼的作用:能夠讓變量更早的在內(nèi)存中消失,節(jié)省內(nèi)存空間。 System.out.println(i); } }
不能在嵌套的兩個塊中聲明同名的變量。
實例:
package decom1; public class cuowu { public static void main(String[] args) { byte i = 12; { int i = 3; //報錯:Duplicate local variable i } System.out.println(i); } }
條件語句
條件語句有三種格式,下面我來解密一下哪三種格式。
格式一
if(條件表達(dá)式) { 語句體; }
Java中條件語句的表現(xiàn)形式:
if(condition) statement
這里的條件必須用小括號括起來。
條件表達(dá)式最終的結(jié)果只能是boolean類型,要么是true,要么是false。
流程:
1.如果程序執(zhí)行到if語句的時候,會去看條件表達(dá)式的結(jié)果是true還是false。
2.如果是true,就會進(jìn)入到if中,執(zhí)行里面的語句體內(nèi)容。
3.如果是false,就不會進(jìn)入到if中,就不會執(zhí)行到里面的語句體內(nèi)容。
package com; public class liu { public static void main(String[] args) { int i = 1; int j = 2; if(i > j) { System.out.println(i); } System.out.println(j); //由于i>j不成立,所以不執(zhí)行if里面的語句,直接跳過執(zhí)行外面的語句。 } }
格式二
if(條件表達(dá)式){ 語句體; }else{ 語句體; }
語句表現(xiàn)形式:
if(condition) statement1 else statement2
執(zhí)行流程:
1.如果程序執(zhí)行到if語句的時候,會去看條件表達(dá)式的結(jié)果是true還是false。
2.如果是true,就會進(jìn)入到if中,執(zhí)行里面的語句體內(nèi)容。
3.如果是false,就不會進(jìn)入到if中,會進(jìn)入到else中,執(zhí)行里面的語句體。
實例:
package com; public class liu { public static void main(String[] args) { //獲取兩個數(shù)的較大值 int i = 1; int j = 2; int max = 0; if(i > j) { max = i; //把i賦值給max } else { max = j; //把j賦值給max } System.out.println(max); //因為i>j條件為假,所以執(zhí)行else里面的語句,所以max得到的數(shù)值為2。 } }
格式三(常用)
if(條件表達(dá)式){ 語句體; }else if{ 語句體; }…else{語句體;}
語句表達(dá)形式:
if…else if…
執(zhí)行流程:
1.如果程序執(zhí)行到if語句的時候,會去看條件表達(dá)式的結(jié)果是true還是false。
2.如果為true,就會執(zhí)行if中的語句體內(nèi)容,其他的語句體不會執(zhí)行。
3.如果為false,就會繼續(xù)向下走,看else if的條件表達(dá)式的結(jié)果是true還是false。
4.如果是true,就進(jìn)入到elseif中,執(zhí)行里面的語句體內(nèi)容。
5.如果是false,就繼續(xù)向下走…
6.如果if和所有的elseif中的條件表達(dá)式都為false,就會執(zhí)行else中的語句體內(nèi)容。
實例:
package com; public class liu { public static void main(String[] args) int a = 0; int i = 7; if(i > 8) { a = 1; } else if(i > 7) { a = 2; } else if(i > 6) { a = 3; } else { a = 4; } System.out.println(a); } }
switch語句
在處理多個選項時if條件語句顯著有些笨拙,這個時候有新的玩法更何樂而不為呢?下面我來介紹switch語句。
結(jié)構(gòu)放在實例講,下面講一下執(zhí)行流程:
1.當(dāng)程序執(zhí)行到switch的時候,會進(jìn)入到switch,會找第一個case進(jìn)行匹配,如果匹配成功,就進(jìn)入到case中執(zhí)行。
2.里面的語句體內(nèi)容和break。如果沒有匹配成功,會繼續(xù)向下走,找第二個case繼續(xù)匹配… …。
3.如果所有的case都不匹配,最后會執(zhí)行default中的語句體內(nèi)容。
實例:
package com; public class liu { public static void main(String[] args) { int i = 3; switch(i) { case 1: System.out.println("1"); break; case 2: System.out.println("2"); break; case 3: System.out.println("3"); //i=3符合case 3所以就執(zhí)行case里面的命令,其余語句則不管。 break; default: System.out.println("3"); break; } } }
case標(biāo)簽:
- 類型為char、byte、short或int的常量表達(dá)式。
- 枚舉常量。
- 從Java 7 開始,case標(biāo)簽可以是字符串字面量。
字符常量實例:
String input.... switch (input.tolowerCase()) { case "yes": ... break; ... }
警告:如果case分支語句結(jié)尾沒有break語句,那么就會接著執(zhí)行下一個case分支語句。
如果你容易忘記這個茬,可以在前面加上這一個語句,這樣一來如果case后面少了一個break,在編譯的時候會提示錯誤。
javac -Xlint:fallthrough Test.java
switch結(jié)束標(biāo)志:
1.break
2.遇到結(jié)尾}
結(jié)束語
本章主要講解塊作用域、條件語句、switch語句這三個控制結(jié)構(gòu),后續(xù)還會講解其它的控制結(jié)構(gòu)
到此這篇關(guān)于Java基礎(chǔ)知識精通塊作用域與條件及switch語句的文章就介紹到這了,更多相關(guān)Java塊作用域內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot+Vue+Element-ui實現(xiàn)前后端分離
使用前后端分離的方式,可以減少代碼耦合,本文主要介紹了SpringBoot+Vue+Element-ui實現(xiàn)前后端分離,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06Gradle的安裝和IDEA集成、項目導(dǎo)入的詳細(xì)教程
這篇文章主要介紹了Gradle的安裝和IDEA集成、項目導(dǎo)入的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08SpringBoot優(yōu)化接口響應(yīng)時間的九個技巧
在實際開發(fā)中,提升接口響應(yīng)速度是一件挺重要的事,特別是在面臨大量用戶請求的時候,本文為大家整理了9個SpringBoot優(yōu)化接口響應(yīng)時間的技巧,希望對大家有所幫助2024-01-01SpringBoot啟動訪問localhost:8080報錯404的解決操作
這篇文章主要介紹了SpringBoot啟動訪問localhost:8080報錯404的解決操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10mybatis-generator自動生成dao、mapping、bean配置操作
這篇文章主要介紹了mybatis-generator自動生成dao、mapping、bean配置操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08Win10系統(tǒng)下配置Java環(huán)境變量
今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識,文章圍繞著Win10系統(tǒng)下配置Java環(huán)境變量展開,文中有非常詳細(xì)的介紹及圖文示例,需要的朋友可以參考下2021-06-06使用@Service注解出現(xiàn)No bean named 'xxxx'&
這篇文章主要介紹了使用@Service注解出現(xiàn)No bean named 'xxxx' available]錯誤的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08SpringBoot 接口開發(fā)教程(httpclient客戶端)
這篇文章主要介紹了SpringBoot 接口開發(fā)教程(httpclient客戶端),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03