我嘗試做以下檢索數據:用的try/catch InputMismatch異常掙扎,並從一個數組
- 調用創建
Array
100隨機生成的整數的方法。 - 調用提示用戶輸入數組的索引位置並返回輸入值的方法。如果用戶輸入的值不是有效整數,則拋出「輸入不匹配異常」,提示用戶出現問題,並允許他們輸入正確的整數或退出程序。
package latest;
import java.util.Scanner;
import java.util.InputMismatchException;
import java.util.Random;
public class Latest
{
private static int[] randomInteger;
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int indexPosition = 0;
randomInteger = new int[100];
Random rand = new Random();
for (int i=0; i<randomInteger.length;i++)
randomInteger[i] = rand.nextInt();
while (indexPosition < 0 || indexPosition > 100)
{
try
{
// get array index position
System.out.println ("Hello, please enter an integer for the array index position: ");
indexPosition = input.nextInt();
}
catch (InputMismatchException e)
{
System.out.println ("You did not input a valid value. Please enter an Integer value between 0 and 100");
indexPosition = input.nextInt();
}
{
System.out.println ("You did not input a valid value. Please enter an Integer value between 0 and 100");
indexPosition = input.nextInt();
System.out.println (randomInteger[indexPosition]);
}
}
}
}
我的問題是代碼編譯,但不輸出任何東西和IDE是說indexPosition - "Assigned value never used"
編輯:英格麗在評論作品的代碼完全然而,如果你輸入一個有效的整數沒有發現任何異常,它只是崩潰
請解決您的縮進.. – 3kings
檢查'而()'循環的,他們似乎是時髦的條件,因爲'indexPosition'不是'< 0 || > 100'在開始或曾經在這種情況下。它需要更像'while(indexPosition!= -1)'(USER ENTERS -1退出循環? – 3kings
我不確定它應該是'if''而不是'while',因爲負數是好,我只需要它,如果用戶輸入'0.5'或'字符串'程序來捕捉它並要求另一個整數,或者如果他們輸入一個適當的整數,它打印出的數組索引的值 – archer