您好,登錄后才能下訂單哦!
這篇文章主要介紹“Java核心技術鞏固篇之如何理解控制流程與大數值及數組”,在日常操作中,相信很多人在Java核心技術鞏固篇之如何理解控制流程與大數值及數組問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java核心技術鞏固篇之如何理解控制流程與大數值及數組”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
1. 控制流程
1.1 塊作用域
1.2 條件語句
2. 大數值
3. 數組
3.1 命令行參數
【易錯點】: 不能在嵌套的兩個塊中聲明同名變量,如
public static void main(String[] args){ int n; ... { int n; // Error--can't redefine n in inner block } }
該代碼由于在嵌套的兩個塊中出現了同名變量,無法通過編譯
注意:
在 C++ 中,可以在嵌套的塊中重定義一個變量。在內層定義的變量會覆蓋在外層定義的變量。
【易錯點】: 在循環中,檢測兩個浮點數是否相等需要格外注意,如
for(double x=0; x!=10; x+=0.1);
上述循環不會結束,因為 0.1 無法精確的用二進制表示,所以 x 將從 9.99999999999998 跳到 10.09999999999998。
【補充點】: switch 語句中的 case 分支語句如果末尾不加 break,其實是一種較危險的情況。所以使用 switch 語句編譯代碼時可以這樣寫 javac -Xlint:fallthrough 文件名.java
。這樣寫的話如果某個分支某位缺少 break,編譯器就會報警告。如果你就是需要有些分支后面不加 break,可以為其外圍方法加一個標注 @SuppressWarnings("fallthrough")
,這樣就不會對方法生成警告。
【補充點】: Java 沒有 goto 語句,但 break 可以帶標簽,可以利用它實現從內層循環跳出的目的。如
int n; read_data: while(){ for(){ ... break read_data; ... } }
注意:
該方式只能跳出語句塊,而不能跳入語句塊
【補充點】: 如果基本的整數和浮點數不能滿足需求,可以使用 java.math
包中的兩個類:BigInteger
和 BigDecinmal
。這兩個類可以處理包含任意長度數字序列的數值。BigInteger
類實現了任意精度的整數運算,BigDecinmal
實現了任意精度的浮點型數運算
【易錯點】: Java 中的數組長度不要求是常量,如 new int[n]
會創建一個長度為 n 的數組。但是確定 n 的值之后就不能改變。
【補充點】:每一個 Java 應用程序都有一個帶 String[] args
參數的 main 方法。這個參數表明 main 方法將接受一個字符串數組,也就是命令行參數。如
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]); } } }
如果我們在命令行使用下面這種形式運行這個程序:java Message -g cruel world
,將顯示下列信息 Goodbye, cruel world!
這表明 args 數組內存的內容如下:args[0]="-g",args[1]="cruel",args[2]="world"
注意:
在 Java 應用程序的 main 方法中,程序名并沒有儲存在 args 數組中
到此,關于“Java核心技術鞏固篇之如何理解控制流程與大數值及數組”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。