for循环次数,元素下标,数组对应

xiaoxiao2021-02-28  87

假设有如下方法: Demo1 private static void doTest(int n) { int count = 0; for (int i = 0;i<n;i++){ System.out.println(i); count++; } System.out.println("循环次数为"+count+"次"); } 如果n = 10;打印如下: 0 1 2 3 4 5 6 7 8 9 则遍历的元素为 0==>9 即0==》n-1, --------------------- 遍历次数为10次; 即n次 Demo2如果修改上述代码为private static void doTest(int m,int n) { int count = 0; for (int i = m;i<n;i++){ System.out.println(i); count++; } System.out.println("循环次数为"+count+"次"); } 假设参数为2,10则打印结果如下:2 3 4 5 6 7 8 9 则遍历的元素为 2==>9 即 m==》n-1,遍历次数为8次,即n-m次; Demo3如果将Demo1修改为private static void doTest(int n) { int count = 0; for (int i = 0;i<=n;i++){ System.out.println(i); count++; } System.out.println("循环次数为"+count+"次"); }第二个条件改为了<=,则打印结果012345678910循环次数为11次 则遍历的元素为0==》n遍历次数为11次,即n+1; 同样修改Demo2参数仍然是2,10Demo4private static void doTest(int m,int n) { int count = 0; for (int i = m;i<=n;i++){ System.out.println(i); count++; } System.out.println("循环次数为"+count+"次"); } 打印结果如下2 3 4 5 6 7 8 9 10 循环次数为9次 则遍历的元素为2==》10即m==>n遍历次数为n-m+1; =============================================那么,为什么在实际写代码的过程冲多数看到的都是Demo1,Demo2的那种情形,即i=0;i<n,i++`如果使用i=1;i<=n;i++不是更好理解吗? 这个就要和数组的下标有关了,在实际编程中,n通常代表了数组的长度,而元素下标是从0开始的,这也就意味着,数组元素的最后一个下标是n-1;如果使用i>=n;则会出现数组下标越界的情况。 也就是说,i=0;i<n;i++,这个条件就可以把数组遍历完成。那么,为什么不使用i=0;i<=n-1 这样的遍历条件呢?其实很简单。。。因为前一种代码量少,写起来更简洁,而后一种写起来稍显复杂。 ok,总结一下本文 |_____|_____|_____|_____|_____|_____| m n-1 nn-m对应的是中间横线的数量,不算上n的话,则横线数量和竖线数量一致 1.使用i<n这种方式使为了方便对应数组的下标2.i=m;i<n;i++遍历元素为m==>n-13.i=m;i<n;i++遍历次数为n-m;
转载请注明原文地址: https://www.6miu.com/read-69434.html

最新回复(0)