Java程式:在向陣列輸入元素時檢查陣列邊界
陣列是一種線性資料結構,用於儲存具有相似資料型別的元素組。它以順序方式儲存資料。一旦建立了陣列,我們就無法更改其大小,即它是固定長度的。
本文將幫助您理解陣列和陣列邊界的基本概念。此外,我們將討論在向陣列輸入元素時檢查陣列邊界的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};
我們可以在程式中使用上述任何語法。
在向陣列輸入元素時檢查陣列邊界
示例1
如果我們在陣列邊界內訪問陣列元素,則不會出現任何錯誤。程式將成功執行。
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
示例2
讓我們嘗試列印超出給定陣列範圍的值。
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的元素後,我們得到了一個錯誤。
示例3
在此示例中,我們嘗試使用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塊處理此錯誤。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP