从指定的起始点开始以n个增量填充数组

时间:2018-09-22 18:44:04

标签: java arrays

因此,假设我要从“开始”到“结束”进行计数,并增加1,其中start = 3,end =6。因此输出应为:{3,4,5,6}

到目前为止,这是我的代码

int[] myarray = new int[end - start + 1];
int start = 3;
int end = 6;
for (int a = 0; a < myarray.length; a++) {
    for (int i = start; start <= end; i++) {
        myarray[a] = i; 
    }
} 

但是问题是嵌套的for循环不会退出,因此它会继续覆盖自身,而且我不确定如何使其“退出”。有任何想法吗?预先感谢。

3 个答案:

答案 0 :(得分:1)

您的问题出在内部for循环for (int i = start; start <= end; i++)中,您增加了i,但您正在检查start<=endstart不变。

另外,您的代码将使用{6,6,6,6}输出数组,因为在第二个for循环中,您总是将数组更新在同一位置。您可以这样做:

int start = 3;
int end = 6;
int[] myarray = new int[end - start + 1];
for (int a = 0; a < myarray.length; a++) {
    myarray[a] = start + a;
} 

答案 1 :(得分:0)

第二个循环是不必要的,您可以这样做,starend也必须先于myarray

int start = 3;
int end = 6;
int[] myarray = new int[end - start + 1];
for (int a = 0; a < myarray.length; a++) {    
        myarray[a] = start+a; 
    }
System.out.println(Arrays.toString(myarray));

输出

[3, 4, 5, 6]

编辑:别忘了导入Arrays类来打印数组

import java.util.*;

答案 2 :(得分:0)

使用java-8,您甚至不需要1个循环,只需一行就可以完成。

int start = 3, end = 6;
int[] myarray = IntStream.rangeClosed(start, end).toArray();