为什么我需要添加+;1到Java中的这个数组?

为什么我需要添加+;1到Java中的这个数组?,java,arrays,printing,Java,Arrays,Printing,我正在看我找到的这段代码,希望有人能帮助我。该程序获取两个数字并将两个数字之间的内容打印到屏幕上,因此,例如20和15将打印 [15,16,17,18,19,20] 我想知道为什么编写代码的人决定在这里向数组中添加1: int[] range = new int[(upper - lower + 1)]; 如果不使用+1,print语句只会产生 [15,16,17,18,19] 希望有人能帮我 实际所需程序输出:数组:[15 16 17 18 19 20] public class Rang

我正在看我找到的这段代码,希望有人能帮助我。该程序获取两个数字并将两个数字之间的内容打印到屏幕上,因此,例如20和15将打印

[15,16,17,18,19,20]

我想知道为什么编写代码的人决定在这里向数组中添加1:

int[] range = new int[(upper - lower + 1)]; 
如果不使用+1,print语句只会产生

[15,16,17,18,19]

希望有人能帮我

实际所需程序输出:数组:
[15 16 17 18 19 20]

public class RangeLister {

    int[] makeRange(int lower, int upper) {

        int[] range = new int[(upper - lower + 1)];

        for (int i = 0; i < range.length; i++) {
            range[i] = lower++;
        }
        return range;
    }

    public static void main(String[] arguments) {
        int[] range;
        RangeLister lister = new RangeLister();

        range = lister.makeRange(15, 20);
        System.out.print("The array: [ ");
        for (int i = 0; i < range.length; i++) {
            System.out.print(range[i] + " ");
        }
        System.out.print("]");
    }
}
公共类RangeLister{
int[]生成范围(int下限,int上限){
int[]范围=新int[(上-下+1)];
对于(int i=0;i
因为您希望您的范围是包容性的

如果您不使用
+1
,您将拥有
20-15=5
。但是,您希望包含20和15,因此需要额外的数字。数一数:

15, 16, 17, 18, 19, 20

这是6位
(20-15+1)
,而不是5位
(20-15)

如果要打印第一个整数以及包括最后一个整数在内的两个整数之间的每个整数,则范围必须包含在内。添加+1将使范围具有包容性

使用较小的范围(如
[1,2]
)更容易看到

您要打印:

1 2
如果不加+1,范围将为

range = 2 - 1 = 1
这意味着在for循环中,只调用print 1次。这将产生以下输出:

1
通过添加+1,您将包括最后一个数字,因此您的范围为:

range = 2 - 1 + 1 = 2
现在,在for循环中,您将打印2个数字,输出将为

1 2 

这是因为实际上有6个来自
[15,20]
的数字。这些数字的差值仅为5,不会将数字打印到更大的数字,即20。添加+1解决了这个问题。

您需要将范围的值设置为6。这样它就可以迭代/选择15到20

以下面的陈述为例。其中
上限=20
下限=15

int[] range = new int[(upper - lower + 1)]; 
range= 20-15+1 = 6
如果只执行'int[]范围=新int[(上-下)]


range=5。
您错过了数字“20”。

您输入的代码不会产生您声称的输出。哎哟。对不起,我把一些贴错了。不过已经修好了。真尴尬!这更好地解释了这一点。非常感谢。