[英]How Can this code be adjusted to input and print a list of numbers?
我正在嘗試創建一個程序,該程序允許用戶將數字輸入到名為“ numArray”的數組中,但是一旦用戶將數字輸入到數組中,就會引發異常。 如何解決?
import java.util.Scanner;
class ArrayNumList
{
public static void main(String[]args)
{
Scanner in = new Scanner(System.in);
System.out.println("How many nums would you like to enter? ");
int n = in.nextInt();
System.out.println("Enter " + n + " nums");
int[] numArray = new int[n];
for(int i = 0; i <= n; i++)
{
int index = in.nextInt();
System.out.print(numArray[index]);
}
}
}
如果用戶插入足夠大的數字/負數,則沒有index
索引。 通過實際的循環變量解決這個問題i
是這樣的:
for(int i = 0; i <= n; i++) {
numArray[i] = in.nextInt();
System.out.print(numArray[i]);
}
問題在於您沒有將數據存儲在陣列中的任何位置。
for(int i = 0; i <= n; i++)
{
int index = in.nextInt();
System.out.print(numArray[index]);
}
每次遍歷數組時,都將輸入存儲到變量index
。 從那里,您嘗試在該索引處顯示數組中的值。 這可能會導致一些問題。
1)您尚未將數字放入此數組中,因此數組中的每個值都將為0。要解決此問題:
numArray[i] = in.nextInt();
2)如果有人輸入的數字大於數組的大小,則會得到IndexOutOfBoundsException
。 我不認為您試圖以此方式進行操作,但這就是您的代碼當前正在嘗試進行的操作。
有3個問題:-
1)從0開始使用i <n
2)嘗試將輸入值添加為數組中的索引。
3)在輸入時打印出值,這會給您帶來混亂,最好在單獨的循環中完成,但是我還是把它留給了您,或者最好使用println而不是print
嘗試這個:-
public static void main(String[]args) {
Scanner in = new Scanner(System.in);
System.out.println("How many nums would you like to enter? ");
int n = in.nextInt();
System.out.println("Enter " + n + " nums");
int[] numArray = new int[n];
for(int i = 0; i < n; i++)
{
numArray[i] = in.nextInt();
System.out.println(numArray[i]);
}
}
首先,它應該是i<n
而不是i<=n
因為n
表示數組長度,而i
表示數組索引。 索引從0開始。例如,一個數組保留值1234,因此長度為4,但索引為0、1、2、3。 因此索引總是比數組長度小1。 另外,您還必須將輸入與數組索引一起存儲。
for(int i = 0; i < n; i++)
{
numArray[i] = in.nextInt();
}
然后再打印
for(int i = 0; i < n; i++)
{
System.out.println(numArray[i]);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.