因此,假设我要从“开始”到“结束”进行计数,并增加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循环不会退出,因此它会继续覆盖自身,而且我不确定如何使其“退出”。有任何想法吗?预先感谢。
答案 0 :(得分:1)
您的问题出在内部for循环for (int i = start; start <= end; i++)
中,您增加了i
,但您正在检查start<=end
。 start
不变。
另外,您的代码将使用{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)
第二个循环是不必要的,您可以这样做,star
和end
也必须先于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();