我是编程的初学者。我进入我的第一个编程课几周,所以请耐心等待。我不是一个寻求帮助的人,所以我一直在寻找一个没有运气的答案。这也是我第一次在任何类型的论坛上发布任何内容,所以如果我的问题结构已经关闭,我很抱歉,我会纠正以后的帖子。
这是我要解决的问题:
编写一个程序,声明一个50个“double”元素的数组“alpha”。初始化数组,使前25个元素等于索引变量的平方,最后25个元素等于索引变量的三倍。输出数组,以便每行打印10个元素。
这是我在运行程序时得到的。
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:50 on line 23
这是我正在处理的代码
import java.util.*;
import java.lang.*;
public class ProgrammingProblem5_4
{
public static void main(String[] args)
{
int i=0;
int count=0;
double[] alpha = new double[50];
if (i >= 25)
alpha[i] = 3*i;
System.out.print(alpha[i]+ " ");
count++;
if (count==10) {
System.out.println("/n");
count=0;
}
}
}
}
提前感谢您的帮助。我不打算为我做这件事,我只是被困住了,需要帮助找到我的路。
答案 0 :(得分:1)
我没有看到任何for循环来使变量初始化。你可以做这样的事情。
for(i=0;i<50;i++){
/* Code which is necessary with a simple if statement*/
}
答案 1 :(得分:0)
首先你应该学习循环,在这种情况下,最合适的是for
循环。例如,让我们用从0开始的递增值初始化整个表:
final int SIZE = 10;
int[] array = new int[SIZE];
for (int i = 0; i < SIZE; i++) {
array[i] = i;
}
现在您可以修改它以根据您的分配使用值初始化您的表。
但是如果用i < SIZE
替换条件i < 11
会发生什么?好吧,你会得到IndexOutOfBoundException
,因为你试图访问(在某些时候)索引10下的一个对象,但是10元素数组中的最高索引是9.所以你要尝试,换句话说,找到朋友的家11号,但街上只有10间房子。
如果您提供了代码,那么必须有更多代码,因为您无法从该代码中获得此错误(异常)。
答案 2 :(得分:0)
ArrayIndexOutOfBoundsException 是 - &gt;你班上有10名学生(int array size 10),你想查看第11名学生(不存在的学生)的价值
如果你做这个int i [3]然后我取值i [0] i [1] i [2]
为您的问题尝试此代码结构
double[] array = new double[50];
for (int i = 0; i < 24; i++) {
}
for (int j = 25; j < 50; j++) {
}
答案 3 :(得分:0)
我还记得编程课程的前几周,我完全理解你的感受。这是解决您的问题的代码。为了从这个答案中学习,尝试运行它在循环中添加几个'print',这样你就可以看到变量的进度。
import java.util.*;
import java.lang.*;
public class foo
{
public static void main(String[] args)
{
double[] alpha = new double[50];
int count = 0;
for (int i=0; i<50; i++)
{
// System.out.print("variable i = " + i + "\n");
if (i < 25)
{
alpha[i] = i*i;
}
else {
alpha[i] = 3*i;
}
if (count < 10)
{
System.out.print(alpha[i]+ " ");
}
else {
System.out.print("\n");
System.out.print(alpha[i]+ " ");
count = 0;
}
count++;
}
System.out.print("\n");
}
}