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

假设有如下方法:
Demo1
private static void doTest(int n) {
    int count = 0;
    for (int i = 0;iout.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;iout.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+"次");
}
第二个条件改为了<=,则打印结果
0
1
2
3
4
5
6
7
8
9
10
循环次数为11次
 
  
 
  
则遍历的元素为0==》n
遍历次数为11次,即n+1;
 
  
同样修改Demo2
参数仍然是2,10
Demo4
 
  
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
3
4
5
6
7
8
9
10
循环次数为9次
 
  则遍历的元素为2==》10即m==>n 
  
遍历次数为n-m+1;
 
  
=============================================
那么,为什么在实际写代码的过程冲多数看到的都是Demo1,Demo2的那种情形,
即i=0;i
`
如果使用i=1;i<=n;
i++
不是更好理解吗?

这个就要和数组的下标有关了,
在实际编程中,n通常代表了数组的长度,而元素下标是从0开始的,
这也就意味着,数组元素的最后一个下标是n-1;
如果使用i>=n;则会出现数组下标越界的情况。

也就是说,i=0;i
那么,为什么不使用i=0;i<=n-1 这样的遍历条件呢?
其实很简单。。。因为前一种代码量少,写起来更简洁,而后一种写起来
稍显复杂。

ok,总结一下本文
 |_____|
_____|
 
  
_____|
_____|
_____|
_____|
 m                             n-1    n
n-m对应的是中间横线的数量,
不算上n的话,则横线数量和竖线数量一致
 
  

1.使用i
 
  
2.i=m;i
遍历元素为m==>n-1
3.i=m;i
遍历次数为n-m;
 
  

 
  
 
  
 
  
 
  
 
  


你可能感兴趣的:(for循环次数,元素下标,数组对应)