<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## [switch 字符串](https://lingcoder.gitee.io/onjava8/#/book/05-Control-Flow?id=switch-%e5%ad%97%e7%ac%a6%e4%b8%b2) Java 7 增加了在字符串上**switch**的用法。 下例展示了從一組**String**中選擇可能值的傳統方法,以及新式方法: ~~~ // control/StringSwitch.java public class StringSwitch { public static void main(String[] args) { String color = "red"; // 老的方式: 使用 if-then 判斷 if("red".equals(color)) { System.out.println("RED"); } else if("green".equals(color)) { System.out.println("GREEN"); } else if("blue".equals(color)) { System.out.println("BLUE"); } else if("yellow".equals(color)) { System.out.println("YELLOW"); } else { System.out.println("Unknown"); } // 新的方法: 字符串搭配 switch switch(color) { case "red": System.out.println("RED"); break; case "green": System.out.println("GREEN"); break; case "blue": System.out.println("BLUE"); break; case "yellow": System.out.println("YELLOW"); break; default: System.out.println("Unknown"); break; } } } ~~~ 輸出結果: ~~~ RED RED ~~~ 一旦理解了**switch**,你會明白這其實就是一個邏輯擴展的語法糖。新的編碼方式能使得結果更清晰,更易于理解和維護。 作為**switch**字符串的第二個例子,我們重新訪問`Math.random()`。 它是否產生從 0 到 1 的值,包括還是不包括值 1 呢?在數學術語中,它屬于 (0,1)、\[0,1)、(0,1\]、\[0,1\] 中的哪種呢?(方括號表示“包括”,而括號表示“不包括”) 下面是一個可能提供答案的測試程序。 所有命令行參數都作為**String**對象傳遞,因此我們可以**switch**參數來決定要做什么。 那么問題來了:如果用戶不提供參數 ,索引到`args`的數組就會導致程序失敗。 解決這個問題,我們需要預先檢查數組的長度,若長度為 0,則使用**空字符串**`""`替代;否則,選擇`args`數組中的第一個元素: ~~~ // control/RandomBounds.java // Math.random() 會產生 0.0 和 1.0 嗎? // {java RandomBounds lower} import onjava.*; public class RandomBounds { public static void main(String[] args) { new TimedAbort(3); switch(args.length == 0 ? "" : args[0]) { case "lower": while(Math.random() != 0.0) ; // 保持重試 System.out.println("Produced 0.0!"); break; case "upper": while(Math.random() != 1.0) ; // 保持重試 System.out.println("Produced 1.0!"); break; default: System.out.println("Usage:"); System.out.println("\tRandomBounds lower"); System.out.println("\tRandomBounds upper"); System.exit(1); } } } ~~~ 要運行該程序,請鍵入以下任一命令: ~~~ java RandomBounds lower // 或者 java RandomBounds upper ~~~ 使用`onjava`包中的**TimedAbort**類可使程序在三秒后中止。從結果來看,似乎`Math.random()`產生的隨機值里不包含 0.0 或 1.0。 這就是該測試容易混淆的地方:若要考慮 0 至 1 之間所有不同**double**數值的可能性,那么這個測試的耗費的時間可能超出一個人的壽命了。 這里我們直接給出正確的結果:`Math.random()`的結果集范圍包含 0.0 ,不包含 1.0。 在數學術語中,可用 \[0,1) 來表示。由此可知,我們必須小心分析實驗并了解它們的局限性。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看