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

来源:互联网 发布:日产空燃比传感器数据 编辑:程序博客网 时间:2024/06/01 13:55
假设有如下方法:
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;打印如下:
0123456789
则遍历的元素为  
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
则打印结果如下:
23456789
则遍历的元素为  
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+"次");}
打印结果如下
2345678910循环次数为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    n
n-m对应的是中间横线的数量,
不算上n的话,则横线数量和竖线数量一致
1.使用i<n这种方式使为了方便对应数组的下标
2.i=m;i<n;i++
遍历元素为m==>n-1
3.i=m;i<n;i++
遍历次数为n-m;



阅读全文
0 0
原创粉丝点击