<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 數組移位與統計 [TOC] ## 導學 本節課,我們來針對之前學習過的內容進行一次綜合應用。通過一個案例,來復習和學習一個比較綜合的程序的編程過程。 ## 需求分析 需求:定義一個類,對數組中的數據進行管理(增刪改查) 方法: 1. 插入數據:`public int[] insertData() {}` 2. 顯示所有數據 `public void showData(int[] a, int length) {}` 3. 在指定位置處插入數據 `public void insertAtArray(int[] a,int n,int k) {}` 4. 查詢能被3整除的數據 `public void divThree(int[] a) {}` ## 基礎方法的實現 ### 從鍵盤接收數據 ~~~ /** * 從鍵盤接收數據,將接收到的數據進行審核,并新增到數組中去 * @return */ public int[] insertData() { //首先定義好一個長度為10的數組 int[] a = new int[10]; //因為Scanner類,不是我們在同一個包中創建的類,是在Java JDK的類庫中保存的類,所以使用的時候需要進行導入。 //暫時記住這個寫法,Scanner用于監聽跟鍵盤操作相關的內容 Scanner sc = new Scanner(System.in); //為插入數據提前做準備,長度為10的數組只能暫時先接收九個數據。 for(int i = 0; i < a.length - 1; i++) { System.out.println("請輸入第" + (i + 1) + "個數據"); //nextInt方法用于從鍵盤接收整型數據 try { //將可能會發生異常的語句放置到try代碼塊中 a[i] = sc.nextInt(); } catch(InputMismatchException e) {//通過catch語句捕獲可能會發生的異常,即輸入非數字的時候,執行catch代碼塊中的內容 System.out.println("輸入的數據類型有誤,不能是非數字"); //將有問題的鍵盤監聽重新連接起來,使用next()繼續去接收數據 sc.next(); //為了重新輸入數據,所以針對以循環做一次重新開始 i--; } } return a; } ~~~ ### 數組元素的顯示 ~~~ /** * 顯示數組中元素的內容 * @param a 數組名 * @param length 要顯示的數組元素的個數 */ public void showData(int[] a, int length) { for (int i = 0; i < length; i++) { System.out.print(a[i] + " "); } System.out.println(); } ~~~ ### 在指定位置處插入數據 ~~~ /** * 從鍵盤接收一個數據,插入到數組的指定位置處 * @param a 要插入數據的數組 * @param n 要插入的數據 * @param k 要插入的位置,從0開始 */ public void insertAtArray(int[] a, int n, int k) { // 注意從最后一個數據開始移動,避免數據覆蓋 for (int i = a.length - 1; i > k; i--) { a[i] = a[i - 1]; } a[k] = n; } public static void main(String[] args) { DataManger dm = new DataManger(); int[] a = dm.insertData(); dm.showData(a, a.length-1);//輸出全部數據 Scanner sc = new Scanner(System.in);//其實此處也要處理一下非整數輸入的問題 System.out.println("請輸入要插入的數據:"); int n = sc.nextInt(); System.out.println("請輸入要插入的位置:"); int k = sc.nextInt(); dm.insertAtArray(a, n, k); dm.showData(a, a.length); } ~~~ ### 能被3整除的方法 ~~~ /** * 輸出數組中能被3整除的元素 * * @param a */ public void divThree(int[] a) { String str = "";//用于保存能被三整除的數據 int count = 0; for (int n : a) { if (n % 3 == 0) { str = str + n + " "; count++; } } if (count == 0) { System.out.println("數組中沒有能被3整除的元素!"); } else { System.out.println("數組中能被3整除的元素為:" + str); } } public static void main(String[] args) { DataManger dm = new DataManger(); int[] a = dm.insertData(); dm.showData(a, a.length-1);//輸出全部數據 Scanner sc = new Scanner(System.in);//其實此處也要處理一下非整數輸入的問題 System.out.println("請輸入要插入的數據:"); int n = sc.nextInt(); System.out.println("請輸入要插入的位置:"); int k = sc.nextInt(); dm.insertAtArray(a, n, k); dm.showData(a, a.length); dm.divThree(a); } ~~~ ### 提示信息方法的實現 即實現在主方法中流程的控制,我們希望在主方法中更多的去關注實現邏輯上的控制。 ~~~ /** * 提示信息 */ public void notice() { System.out.println("********************************************"); System.out.println(" 1--插入數據"); System.out.println(" 2--顯示所有數據"); System.out.println(" 3--在指定位置處插入數據"); System.out.println(" 4--查詢能被3整除的數據"); System.out.println(" 0--退出"); System.out.println("********************************************"); } ~~~ ## 主方法的實現 ~~~ public static void main(String[] args) { DataManger dm = new DataManger(); // int[] a = dm.insertData(); // * dm.showData(a, 8);//輸出全部數據 // 將接收數據語句提取出來 Scanner sc = new Scanner(System.in); // 將輸入數據提取出來 int input; int[] a = null;//先定義數組為一個空數組 int n=0,k=0;//n表示要插入的數據,k表示插入位置 // 1 首先實現循環輸入5個指示數字 while (true) { // 循環提示 dm.notice(); // 進行提示 System.out.println("請輸入對應的數字進行操作:"); // 接收鍵盤操作數據 try{ input = sc.nextInt(); }catch(InputMismatchException e){ System.out.println("輸入的數據格式有誤,不能有非數字!"); sc.next(); continue; } // 針對0單獨處理,退出程序(退出循環) if (input == 0) { System.out.println("退出程序!"); break; } // 通過switch語句根據操作數進行操作的選擇 switch (input) { case 1:{ //插入數據,并接收得到的數據 a = dm.insertData(); //顯示數據 System.out.println("數組元素為:"); dm.showData(a, a.length-1); break; } case 2:{//顯示數據 //需要判斷數組是否已經賦值 if(a != null) { System.out.println("數組元素為:"); if(a[a.length-1]==0){ //如果數組的最后一個元素為0,說明還沒有拆入數據,因此不顯示最后一個元素 dm.showData(a, a.length-1); }else{ dm.showData(a, a.length); } } else { System.out.println("還未在數組中插入數據,請重新選擇操作!"); } break; } case 3:{ if(a!=null){ System.out.println("請輸入要插入的數據:"); try{ n=sc.nextInt(); System.out.println("請輸入要插入數據的位置:"); k=sc.nextInt(); }catch(InputMismatchException e){ System.out.println("輸入的數據格式有誤,不能有非數字!"); sc.next(); break; } dm.insertAtArray(a, n, k); dm.showData(a, a.length); }else{ System.out.println("還未在數組中插入數據,請重新選擇操作!"); } break; } case 4:{ //查詢數組中能被3整除的元素 if(a!=null){ dm.divThree(a); }else{ System.out.println("還未在數組中插入數據,請重新選擇操作!"); } break; } default: { System.out.println("請輸入對應的數字進行操作!"); } } } } ~~~
                  <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>

                              哎呀哎呀视频在线观看