Java 控制流程、大數(shù)值、數(shù)組
1. 控制流程
1.1 塊作用域
【易錯(cuò)點(diǎn)】: 不能在嵌套的兩個(gè)塊中聲明同名變量,如
public static void main(String[] args){ int n; ... { int n; // Error--can't redefine n in inner block } }
該代碼由于在嵌套的兩個(gè)塊中出現(xiàn)了同名變量,無(wú)法通過編譯
注意:
在 C++ 中,可以在嵌套的塊中重定義一個(gè)變量。在內(nèi)層定義的變量會(huì)覆蓋在外層定義的變量。
1.2 條件語(yǔ)句
【易錯(cuò)點(diǎn)】: 在循環(huán)中,檢測(cè)兩個(gè)浮點(diǎn)數(shù)是否相等需要格外注意,如
for(double x=0; x!=10; x+=0.1);
上述循環(huán)不會(huì)結(jié)束,因?yàn)?0.1 無(wú)法精確的用二進(jìn)制表示,所以 x 將從 9.99999999999998 跳到 10.09999999999998。
【補(bǔ)充點(diǎn)】: switch
語(yǔ)句中的 case
分支語(yǔ)句如果末尾不加 break,其實(shí)是一種較危險(xiǎn)的情況。所以使用 switch
語(yǔ)句編譯代碼時(shí)可以這樣寫 javac -Xlint:fallthrough
文件名.java。這樣寫的話如果某個(gè)分支某位缺少 break,編譯器就會(huì)報(bào)警告。如果你就是需要有些分支后面不加 break
,可以為其外圍方法加一個(gè)標(biāo)注 @SuppressWarnings
("fallthrough"),這樣就不會(huì)對(duì)方法生成警告。
【補(bǔ)充點(diǎn)】: Java
沒有 goto
語(yǔ)句,但 break
可以帶標(biāo)簽,可以利用它實(shí)現(xiàn)從內(nèi)層循環(huán)跳出的目的。如
int n; read_data: while(){ for(){ ... break read_data; ... } }
注意:
該方式只能跳出語(yǔ)句塊,而不能跳入語(yǔ)句塊
2. 大數(shù)值
【補(bǔ)充點(diǎn)】: 如果基本的整數(shù)和浮點(diǎn)數(shù)不能滿足需求,可以使用 java.math
包中的兩個(gè)類:BigInteger
和 BigDecinmal
。這兩個(gè)類可以處理包含任意長(zhǎng)度數(shù)字序列的數(shù)值。BigInteger
類實(shí)現(xiàn)了任意精度的整數(shù)運(yùn)算,BigDecinmal
實(shí)現(xiàn)了任意精度的浮點(diǎn)型數(shù)運(yùn)算
3. 數(shù)組
【易錯(cuò)點(diǎn)】: Java 中的數(shù)組長(zhǎng)度不要求是常量,如 new int[n]
會(huì)創(chuàng)建一個(gè)長(zhǎng)度為 n 的數(shù)組。但是確定 n 的值之后就不能改變。
3.1 命令行參數(shù)
【補(bǔ)充點(diǎn)】:每一個(gè) Java 應(yīng)用程序都有一個(gè)帶 String[] args
參數(shù)的 main 方法。這個(gè)參數(shù)表明 main
方法將接受一個(gè)字符串?dāng)?shù)組,也就是命令行參數(shù)。如
public class Message{ public static void main(String[] args){ if(args.length==0||args[0].equals("-h")){ System.out.print("Hello,"); }else if(args[0].equlas("-g")){ System.out.print("Goodbye,"); } for(int i=1;i<args.length;i++){ System.out.print(" "+args[i]); } } }
如果我們?cè)诿钚惺褂孟旅孢@種形式運(yùn)行這個(gè)程序:java Message -g cruel world
,將顯示下列信息 Goodbye
, cruel world
!
這表明 args
數(shù)組內(nèi)存的內(nèi)容如下:args[0]="-g",args[1]="cruel",args[2]="world"
注意:
在 Java 應(yīng)用程序的 main 方法中,程序名并沒有儲(chǔ)存在 args 數(shù)組中
到此這篇關(guān)于Java 控制流程、大數(shù)值、數(shù)組的文章就介紹到這了,更多相關(guān)Java 控制流程、大數(shù)值、數(shù)組內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringMVC?@RequestMapping注解屬性詳細(xì)介紹
通過@RequestMapping注解可以定義不同的處理器映射規(guī)則,下面這篇文章主要給大家介紹了關(guān)于SpringMVC中@RequestMapping注解用法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02Spring Boot security 默認(rèn)攔截靜態(tài)資源的解決方法
這篇文章主要介紹了Spring Boot security 默認(rèn)攔截靜態(tài)資源,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03關(guān)于弱引用WeakReference所引用的對(duì)象的回收規(guī)則
這篇文章主要介紹了關(guān)于弱引用WeakReference所引用的對(duì)象的回收規(guī)則,如果一個(gè)弱引用實(shí)例的成員變量referent引用了一個(gè)對(duì)象obj,那么就稱這個(gè)弱引用實(shí)例對(duì)obj的引用是弱引用,被一個(gè)弱引用實(shí)例引用的對(duì)象,稱為弱引用對(duì)象,需要的朋友可以參考下2023-09-09java String類功能、原理與應(yīng)用案例【統(tǒng)計(jì)、判斷、轉(zhuǎn)換等】
這篇文章主要介紹了java String類功能、原理與應(yīng)用案例,結(jié)合實(shí)例形式詳細(xì)分析了java String類的基本功能、構(gòu)造方法,以及使用String類實(shí)現(xiàn)統(tǒng)計(jì)、判斷、轉(zhuǎn)換等功能相關(guān)操作技巧,需要的朋友可以參考下2019-03-03Java實(shí)現(xiàn)辦公文檔在線預(yù)覽功能
java實(shí)現(xiàn)辦公文件在線預(yù)覽功能是一個(gè)大家在工作中也許會(huì)遇到的需求,這篇文章就教大家如何實(shí)現(xiàn)這一功能,感興趣的小伙伴可以了解一下2021-12-12Java實(shí)現(xiàn)文件上傳至服務(wù)器的方法
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)文件上傳至服務(wù)器的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01Java入門絆腳石之Override和Overload的區(qū)別詳解
重寫是子類對(duì)父類的允許訪問的方法的實(shí)現(xiàn)過程進(jìn)行重新編寫, 返回值和形參都不能改變。即外殼不變,核心重寫!重寫的好處在于子類可以根據(jù)需要,定義特定于自己的行為。重載是在一個(gè)類里面,方法名字相同,而參數(shù)不同。返回類型可以相同也可以不同2021-10-10Java Synchronize下的volatile關(guān)鍵字詳解
這篇文章主要介紹了Java Synchronize下的volatile關(guān)鍵字詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03Redis緩存,泛型集合與json字符串的相互轉(zhuǎn)換實(shí)例
這篇文章主要介紹了Redis緩存,泛型集合與json字符串的相互轉(zhuǎn)換實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-07-07