当我尝试在java中运行以下代码时,它告诉了界限,但程序在逻辑上是正确的:
import java.io.*;
class array2
{
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
int a[]=new int[5];
int i,sum=0;
for(i=1;i<=5;i++) {
System.out.println("enter the numbers");
a[i]=sc.nextInt();
}
for(i=1;i<=5;i++) {
sum=sum+a[i];
}
System.out.println(+sum);
}
}
答案 0 :(得分:1)
更改
for(i = 1; i <= 5; i++)
...
System.out.println(+sum);
到
for(i = 0; i < 5; i++)
...
System.out.println(sum);
从第一个元素开始,0索引。
答案 1 :(得分:1)
您创建一个数组,这意味着它的位置从0
开始,您从1
开始并尝试运行5次。尝试从0开始:
import java.io.*;
class array2
{
public static void main(String args[])
{
Scanner sc=new Scanner(System.in);
int a[]=new int[5];
int i,sum=0;
for(i = 0; i < 5; i++)
{
System.out.println("enter the numbers");
a[i]=sc.nextInt();
}
for(i = 0; i < 5; i++)
{
sum=sum+a[i];
}
System.out.println(+sum);
}
}
答案 2 :(得分:1)
数组从0开始到length - 1
结束,但你不需要任何数组。你可以做到
Scanner sc=new Scanner(System.in);
long sum = IntStream.range(0, 5)
.map(i -> {
System.out.println("enter the numbers");
return sc.nextInt();
})
.sum();
System.out.println("sum: " + sum);