Java 如何将数组索引为1而不是0?
在这种情况下,程序应该将所有数组添加到一起。但是,如果我在sum method参数中输入1,它将从7开始计数,但如果我输入0,它将输出0Java 如何将数组索引为1而不是0?,java,arrays,indexing,Java,Arrays,Indexing,在这种情况下,程序应该将所有数组添加到一起。但是,如果我在sum method参数中输入1,它将从7开始计数,但如果我输入0,它将输出0 public class sList { public static void main(String[]args) { int[] array = {10,7,11,5,13,8}; // How do I make it read the value 10 as 1 in the array? sum(array.len
public class sList {
public static void main(String[]args) {
int[] array = {10,7,11,5,13,8}; // How do I make it read the value 10 as 1 in the array?
sum(array.length,array);
}
public static int sum(int n, int[] S) {
int i;
int result;
result = 0;
for(i=1;i<=n;i++)
result = result + S[i];
System.out.println(result);
return result;
}
}
公共类sList{
公共静态void main(字符串[]args){
int[]数组={10,7,11,5,13,8};//如何使它将数组中的值10读取为1?
和(数组、长度、数组);
}
公共静态整数和(整数n,整数[]S){
int i;
int结果;
结果=0;
对于(i=1;i那么,数组索引以零开始,我想到的唯一方法是在获取值的同时减小i的值
int[] s = {10,7,11,5,13,8};
for(i=1;i<=n;i++){
result = result + S[i-1];
}
int[]s={10,7,11,5,13,8};
对于(i=1;i,您应该更改for循环,而不是更改数组:
for(i=0;i<n;i++)
我不会把长度传进去,因为:
- 它是冗余的-
数组。如果您想知道长度,长度将告诉您长度
- 无论如何,您不需要知道长度,因为有一种更好的方法可以迭代数组
相反,只需使用以下命令遍历传入的整个数组:
这样做的结果是代码大大减少,从而更易于阅读和理解。只要想想,它对0(否则对1)有什么影响:
案例0:(n=长度=6)
0,1,2,3,4,5,6
案例1:(n=6)
1,2,3,4,5,6
按字面意思填充数组中的位置:
0,1,2,3,4,5
在这两种情况下,元素6都不在数组中,因此存在错误。在情况1中,您“忘记”对索引为0的第一个元素进行计数
这就是为什么你要写:
for(i=0;i继续,将for循环设置为+1值,以便0数组值准确反映相对索引
for (int i = 0; i < helloArray.length; i++) {
if (i == max) {
System.out.println(helloArray[i]);
System.out.println("=");
System.out.println(i+1);
}
for(int i=0;i
for(i=0;我猜您不仅将1更改为0,而且还更改了其他内容,导致结果为0。否则将1更改为0将产生正确的结果(除了您还需要将n
更改为n-1
或最好的选择是删除数组长度表单参数。for(i=1;i)“但如果您不想这样做,您可以始终…”…做一些不必要和浪费的事情。将条件更改为i@RohitJain这怎么会引发ArrayIndexOutOfBoundsException?@11684..i@Andrew完全同意。如果您想要求和,请更改for循环。为什么要以0开始数组。
public static int sum(int[] array) {
int result = 0;
for (int i : array)
result += i;
return result;
}
for (int i = 0; i < helloArray.length; i++) {
if (i == max) {
System.out.println(helloArray[i]);
System.out.println("=");
System.out.println(i+1);
}