对于for循环次数的一些探讨

我也是小白,可能存在错误,各位倘若看到一定要带着思考来看...

下面的分析一大堆,结论就这个:

看到<,推断出次数是 (n-起始数) 次.
<= 在这个基础上 加1次就好了

1.for循环基本格式

for循环的基本格式如下

        for (int i = 0; i < 5; i++) {
            
        }

这里面有两个值得关注的点:

起始数
int i = 0;
int i = 1;

终止条件
i < 5;
i <= 5;

2.for循环的探讨

  • 情况1:以0开始,小于n,则执行n次.
        for (int i = 0; i < 5; i++) {
            //执行次数为0,1,2,3,4
            //共 5 次
        }
  • 情况2:以1开始,小于n,则执行n-1次.
        for (int i = 1; i < 5; i++) {
            //执行次数为1,2,3,4
            //共 4 次
        }
  • 情况3:以0开始,小于等于n,在前面的基础上,多执了行1次.

即0开始,<=n,执行了n+1次.

        for (int i = 0; i <= 5; i++) {
            //执行次数为0,1,2,3,4,5
            //共 6 次
        }
  • 情况3:以1开始,小于等于n,在前面的基础上,多执了行1次.

即0开始,<=n,执行了(n-1)+1=n次.

        for (int i = 1; i <= 5; i++) {
            //执行次数为1,2,3,4,5
            //共 5 次
        }

3.总结

这个for循环执行了多少次

如果是0开始
< 对应 n次(n-0).
<= 对应 n+1次.

如果是1开始
< 对应 n-1次.
<= 对应 n次.

怎么记忆:
0开<是n(n-0)次,1开<是n-1次,条件换成<=则次数加1次

看到<,我们就能推断出次数是 (n-起始数) 次.
<= 在这个基础上 加1次就好了

4.实例

下方是一个冒泡排序

N个数字要排序完成,总共进行N-1趟排序,第i趟的排序次数为N-i次.

        //外层控制排序次数
        for (int i = 1; i < intArr.length; i++) {
            //内层循环控制每一趟比较几次
            for (int j = 0; j < intArr.length - i; j++) {
                if (intArr[j] > intArr[j + 1]) {
                    int temp = intArr[j];
                    intArr[j] = intArr[j + 1];
                    intArr[j + 1] = temp;
                }
            }
        }

外层执行了intArr.length-1次,里层执行了intArr.length-i-0次;
即intArr.length-1次与intArr.length-i次;

5.演示代码

/**
 * @Class: MyForLoop
 * @Author: Yiang37
 * @Date: 2020/4/30 18:24
 * @Description: for循环次数探讨
 */
public class MyForLoop {
    private static int flag = 1;

    public static void main(String[] args) {

        for (int i = 5639; i < 46659; i++) {
            System.out.println("次数:" + flag++);
        }

        System.out.println(46659 - 5639 + "是计算结果");
    }
}

结果如下

...
次数:41013
次数:41014
次数:41015
次数:41016
次数:41017
次数:41018
次数:41019
次数:41020
41020是计算结果
原文地址:https://www.cnblogs.com/yang37/p/12810570.html