Java中的数组索引越界错误 包测试1; 导入java.util.Scanner; 公开课问题2{ 公共静态void main(字符串[]args){ 扫描仪输入=新扫描仪(System.in); 火车车厢; int最大权重; 整数计数=0; int-total=0; maxweight=input.nextInt(); traincars=input.nextInt(); int[]列车=新int[列车车厢]; 对于(int i=0;i
这是一个非常简单的程序,但由于某些原因,火车车厢的数组超出了范围Java中的数组索引越界错误 包测试1; 导入java.util.Scanner; 公开课问题2{ 公共静态void main(字符串[]args){ 扫描仪输入=新扫描仪(System.in); 火车车厢; int最大权重; 整数计数=0; int-total=0; maxweight=input.nextInt(); traincars=input.nextInt(); int[]列车=新int[列车车厢]; 对于(int i=0;i,java,arrays,eclipse,Java,Arrays,Eclipse,这是一个非常简单的程序,但由于某些原因,火车车厢的数组超出了范围 为什么会发生这种情况?在 package test1; import java.util.Scanner; public class Question2 { public static void main(String[] args) { Scanner input = new Scanner(System.in); int traincars; int maxwei
为什么会发生这种情况?在
package test1;
import java.util.Scanner;
public class Question2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int traincars;
int maxweight;
int count = 0;
int total = 0;
maxweight = input.nextInt();
traincars = input.nextInt();
int[] trains = new int[traincars];
for(int i = 0; i < traincars; i++)
{
trains[i] = input.nextInt();
}
if (total < maxweight)
{
for(int i = 0; i < traincars; i++)
{
total = trains[i] + trains[i+1] + trains[i+2] + trains[i+3];
count++;
}
}else
{
count = count + 3;
}
System.out.println("count");
}
}
问题在于:
for(int i = 0; i < traincars; i++)
{
total += trains[i]; //unless of course you need something else...
count++;
}
你能发布错误输出吗?嗯,哪一行得到了错误?如果不能以其他方式将其隔离,请将trains+trains+trains语句分解为多个子语句,这样每行只发生一个数组索引操作。(但原因很明显——如果i==traincars-1,那么i+3将是traincars+2,超出数组的范围。)谢谢!我意识到了这一点,并设法解决了它。谢谢你的帮助。
for(int i = 0; i < traincars; i++)
{
total += trains[i]; //unless of course you need something else...
count++;
}
for(int i = 0; i < traincars; i++)
{
total = trains[i] + trains[i+1] + trains[i+2] + trains[i+3];
count++;
}
for(int i = 0; i < traincars - 3; i++) {...}