【发布时间】:2015-11-26 04:15:08
【问题描述】:
我正在尝试编写一个在您输入数字时输出数字名称的程序。它适用于一位数字,但我遇到了障碍。每当我输入一个大于 10 的数字时,它都会给我一个 ArrayOutOfBoundsException。我不太清楚为什么,因为我使用数组的时间不长。到目前为止,我只编写了代码来输出最多 20 个数字的名称。代码如下:
package numericname;
import java.util.Scanner;
public class NumericName {
static String[] Ones = {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten"};
static String[] Mids = {"Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"};
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int x;
System.out.println("Enter a number");
x = in.nextInt();
if(x/10 <= 1)
ones(x);
if(x/10 > 1 && x/10 < 2)
mids(x);
}
public static void ones(int x) {
System.out.println(Ones[x]);
}
public static void mids(int x) {
x -= 11
System.out.println(Mids[x]);
}
}
我添加了 x - 11 以使数字等于它在字符串数组中的名称,但它仍然不起作用。我究竟做错了什么?谢谢!
【问题讨论】:
-
如果 x = 11 ,它将进入第一个 if 并且 one(x) 将被执行。
-
哦对了,因为这些变量是整数!!哦,非常感谢!