陣列是一種線性資料結構,用於儲存具有相似資料類型的元素組。它以順序方式儲存資料。一旦我們建立了一個數組,我們就無法改變它的大小,也就是它是固定長度的。
本文將幫助您了解陣列和陣列綁定的基本概念。此外,我們還將討論在向數組輸入元素時檢查數組邊界的 java 程式。
我們可以透過索引存取陣列元素。假設我們有一個長度為N的數組,那麼
#在上圖中我們可以看到陣列中有 7 個元素,但索引值是從 0 到 6,也就是 0 到 7 - 1。
陣列的範圍稱為它的邊界。上面數組的範圍是從 0 到 6,因此,我們也可以說 0 到 6 是給定數組的界限。如果我們嘗試存取超出範圍的索引值或負索引,我們將得到 ArrayIndexOutOfBoundsException。這是運行時發生的錯誤。
Data_Type[] nameOfarray; // declaration Or, Data_Type nameOfarray[]; // declaration Or, // declaration with size Data_Type nameOfarray[] = new Data_Type[sizeofarray]; // declaration and initialization Data_Type nameOfarray[] = {values separated with comma};
我們可以在我們的程式中使用上述任何語法。
在將元素輸入陣列時檢查陣列邊界
如果我們存取數組範圍內的元素,那麼我們不會得到任何錯誤。程序將成功執行。
public class Main { public static void main(String []args) { // declaration and initialization of array ‘item[]’ with size 5 String[] item = new String[5]; // 0 to 4 is the indices item[0] = "Rice"; item[1] = "Milk"; item[2] = "Bread"; item[3] = "Butter"; item[4] = "Peanut"; System.out.print(" Elements of the array item: " ); // loop will iterate till 4 and will print the elements of ‘item[]’ for(int i = 0; i <= 4; i++) { System.out.print(item[i] + " "); } } }
Elements of the array item: Rice Milk Bread Butter Peanut
讓我們嘗試列印給定數組範圍之外的值。
public class Tutorialspoint { public static void main(String []args) { String[] item = new String[5]; item[0] = "Rice"; item[1] = "Milk"; item[2] = "Bread"; item[3] = "Butter"; item[4] = "Peanut"; // trying to run the for loop till index 5 for(int i = 0; i <= 5; i++) { System.out.println(item[i]); } } }
Rice Milk Bread Butter Peanut Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5 at Tutorialspoint.main(Tutorialspoint.java:11)
正如我們之前討論的,如果我們嘗試存取陣列的索引值超出其範圍或負索引,我們將得到 ArrayIndexOutOfBoundsException。
在上面的程式中,我們嘗試執行 for 迴圈直到陣列「item[]」的索引 5,但其範圍僅為 0 到 4。因此,在列印元素直到 4 後,我們收到了錯誤。
在這個範例中,我們嘗試使用 try 和 catch 區塊來處理 ArrayIndexOutOfBoundsException。我們將在使用者將元素輸入數組時檢查數組邊界。
import java.util.*; public class Tutorialspoint { public static void main(String []args) throws ArrayIndexOutOfBoundsException { // Here ‘sc’ is the object of scanner class Scanner sc = new Scanner(System.in); System.out.print("Enter number of items: "); int n = sc.nextInt(); // declaration and initialization of array ‘item[]’ String[] item = new String[n]; // try block to test the error try { // to take input from user for(int i =0; i<= item.length; i++) { item[i] = sc.nextLine(); } } // We will handle the exception in catch block catch (ArrayIndexOutOfBoundsException exp) { // Printing this message to let user know that array bound exceeded System.out.println( " Array Bounds Exceeded \n Can't take more inputs "); } } }
Enter number of items: 3
在本文中,我們了解了陣列和陣列綁定。我們已經討論了為什麼如果我們嘗試存取超出其範圍的陣列元素會收到錯誤,以及如何使用 try 和 catch 區塊處理此錯誤。
以上是Java程式在輸入數組元素時檢查數組邊界的詳細內容。更多資訊請關注PHP中文網其他相關文章!