Java基礎(chǔ)知識(shí)精通塊作用域與條件及switch語(yǔ)句
前言
本文章主要講解控制流程:塊作用域、條件語(yǔ)句、switch語(yǔ)句,篇幅不大,通俗易記。
塊作用域
在深入學(xué)習(xí)控制結(jié)構(gòu)前,須先了解塊的作用。
定義:由多條Java語(yǔ)句組成的語(yǔ)句,并用一對(duì)大括號(hào)括起來。
作用:塊確定了變量的作用域,一個(gè)塊可以嵌套在另一個(gè)塊上。
實(shí)例:
package decom1;
public class cuowu {
public static void main(String[] args) { //第二個(gè)塊嵌套在第一個(gè)塊里面。
byte i = 12; //變量i只在第二個(gè)塊區(qū)域內(nèi)有作用包括嵌套里面的塊。
{ //第三個(gè)塊嵌套在第二個(gè)塊里面同時(shí)也在第一個(gè)塊里面。
int a = 3; //變量a只在所在的塊起到作用。
System.out.println(a);
} //寫在main(程序執(zhí)行的入口)里面的代碼塊,就稱為局部代碼塊。
//局部代碼的作用:能夠讓變量更早的在內(nèi)存中消失,節(jié)省內(nèi)存空間。
System.out.println(i);
}
}不能在嵌套的兩個(gè)塊中聲明同名的變量。
實(shí)例:
package decom1;
public class cuowu {
public static void main(String[] args) {
byte i = 12;
{
int i = 3; //報(bào)錯(cuò):Duplicate local variable i
}
System.out.println(i);
}
}條件語(yǔ)句
條件語(yǔ)句有三種格式,下面我來解密一下哪三種格式。
格式一
if(條件表達(dá)式) { 語(yǔ)句體; }
Java中條件語(yǔ)句的表現(xiàn)形式:
if(condition) statement
這里的條件必須用小括號(hào)括起來。
條件表達(dá)式最終的結(jié)果只能是boolean類型,要么是true,要么是false。
流程:
1.如果程序執(zhí)行到if語(yǔ)句的時(shí)候,會(huì)去看條件表達(dá)式的結(jié)果是true還是false。
2.如果是true,就會(huì)進(jìn)入到if中,執(zhí)行里面的語(yǔ)句體內(nèi)容。
3.如果是false,就不會(huì)進(jìn)入到if中,就不會(huì)執(zhí)行到里面的語(yǔ)句體內(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里面的語(yǔ)句,直接跳過執(zhí)行外面的語(yǔ)句。
}
}格式二
if(條件表達(dá)式){ 語(yǔ)句體; }else{ 語(yǔ)句體; }
語(yǔ)句表現(xiàn)形式:
if(condition) statement1 else statement2
執(zhí)行流程:
1.如果程序執(zhí)行到if語(yǔ)句的時(shí)候,會(huì)去看條件表達(dá)式的結(jié)果是true還是false。
2.如果是true,就會(huì)進(jìn)入到if中,執(zhí)行里面的語(yǔ)句體內(nèi)容。
3.如果是false,就不會(huì)進(jìn)入到if中,會(huì)進(jìn)入到else中,執(zhí)行里面的語(yǔ)句體。
實(shí)例:
package com;
public class liu {
public static void main(String[] args) {
//獲取兩個(gè)數(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); //因?yàn)閕>j條件為假,所以執(zhí)行else里面的語(yǔ)句,所以max得到的數(shù)值為2。
}
}格式三(常用)
if(條件表達(dá)式){ 語(yǔ)句體; }else if{ 語(yǔ)句體; }…else{語(yǔ)句體;}
語(yǔ)句表達(dá)形式:
if…else if…
執(zhí)行流程:
1.如果程序執(zhí)行到if語(yǔ)句的時(shí)候,會(huì)去看條件表達(dá)式的結(jié)果是true還是false。
2.如果為true,就會(huì)執(zhí)行if中的語(yǔ)句體內(nèi)容,其他的語(yǔ)句體不會(huì)執(zhí)行。
3.如果為false,就會(huì)繼續(xù)向下走,看else if的條件表達(dá)式的結(jié)果是true還是false。
4.如果是true,就進(jìn)入到elseif中,執(zhí)行里面的語(yǔ)句體內(nèi)容。
5.如果是false,就繼續(xù)向下走…
6.如果if和所有的elseif中的條件表達(dá)式都為false,就會(huì)執(zhí)行else中的語(yǔ)句體內(nèi)容。
實(shí)例:
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語(yǔ)句
在處理多個(gè)選項(xiàng)時(shí)if條件語(yǔ)句顯著有些笨拙,這個(gè)時(shí)候有新的玩法更何樂而不為呢?下面我來介紹switch語(yǔ)句。
結(jié)構(gòu)放在實(shí)例講,下面講一下執(zhí)行流程:
1.當(dāng)程序執(zhí)行到switch的時(shí)候,會(huì)進(jìn)入到switch,會(huì)找第一個(gè)case進(jìn)行匹配,如果匹配成功,就進(jìn)入到case中執(zhí)行。
2.里面的語(yǔ)句體內(nèi)容和break。如果沒有匹配成功,會(huì)繼續(xù)向下走,找第二個(gè)case繼續(xù)匹配… …。
3.如果所有的case都不匹配,最后會(huì)執(zhí)行default中的語(yǔ)句體內(nèi)容。
實(shí)例:
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里面的命令,其余語(yǔ)句則不管。
break;
default:
System.out.println("3");
break;
}
}
}case標(biāo)簽:
- 類型為char、byte、short或int的常量表達(dá)式。
- 枚舉常量。
- 從Java 7 開始,case標(biāo)簽可以是字符串字面量。
字符常量實(shí)例:
String input....
switch (input.tolowerCase())
{
case "yes":
...
break;
...
}警告:如果case分支語(yǔ)句結(jié)尾沒有break語(yǔ)句,那么就會(huì)接著執(zhí)行下一個(gè)case分支語(yǔ)句。
如果你容易忘記這個(gè)茬,可以在前面加上這一個(gè)語(yǔ)句,這樣一來如果case后面少了一個(gè)break,在編譯的時(shí)候會(huì)提示錯(cuò)誤。
javac -Xlint:fallthrough Test.java
switch結(jié)束標(biāo)志:
1.break
2.遇到結(jié)尾}
結(jié)束語(yǔ)
本章主要講解塊作用域、條件語(yǔ)句、switch語(yǔ)句這三個(gè)控制結(jié)構(gòu),后續(xù)還會(huì)講解其它的控制結(jié)構(gòu)
到此這篇關(guān)于Java基礎(chǔ)知識(shí)精通塊作用域與條件及switch語(yǔ)句的文章就介紹到這了,更多相關(guān)Java塊作用域內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java利用redis實(shí)現(xiàn)防止接口重復(fù)提交
本文主要為大家詳細(xì)介紹了Java如何利用redis實(shí)現(xiàn)防止接口重復(fù)提交,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-11-11
scala中的隱式類型轉(zhuǎn)換的實(shí)現(xiàn)
這篇文章主要介紹了scala中的隱式類型轉(zhuǎn)換的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
HashSet工作原理_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
HashSet 底層采用 HashMap 來保存所有元素,因此 HashSet 的實(shí)現(xiàn)比較簡(jiǎn)單。接下來通過本文給大家介紹HashSet工作原理_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理,需要的朋友可以參考下2017-04-04
springcloud連接遠(yuǎn)程nacos失敗顯示localhost服務(wù)連接失敗的問題解決
這篇文章主要介紹了springcloud連接遠(yuǎn)程nacos失敗顯示localhost服務(wù)連接失敗的問題解決,文中有詳細(xì)的代碼示例供大家參考,對(duì)大家解決問題有一定的幫助,需要的朋友可以參考下2024-03-03
Spring MVC 學(xué)習(xí) 之 - URL參數(shù)傳遞詳解
本篇文章主要介紹了SpringMVC-URL參數(shù)傳遞,在學(xué)習(xí) Spring Mvc 過程中,有必要來先了解幾個(gè)關(guān)鍵參數(shù),有興趣的可以了解一下。2017-01-01
Spring Boot 在啟動(dòng)時(shí)進(jìn)行配置文件加解密的方法詳解
這篇文章主要介紹了Spring Boot 在啟動(dòng)時(shí)進(jìn)行配置文件加解密的方法,本文通過實(shí)例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06

