第十四届蓝桥杯集训——JavaC组第十二篇——while循环(循环四要素)

简介: 第十四届蓝桥杯集训——JavaC组第十二篇——while循环(循环四要素)

第十四届蓝桥杯集训——JavaC组第十二篇——while循环(循环四要素)


前言

百度解析:以环形、回路或轨道运行;沿曲折的路线运行;特指运行一周而回到原处,再转。或说反复地连续做某事。

那么,在程序中依然是连续重复的按照一定的规则去执行某事。

程序计数器PC

PC(Program Counter,PC)用来存放当前欲执行指令的地址,它与主存的MAR之间有一条直接通路,且具有自加1的功能,即可形成下一条指令的地址。

指令计数器是用于存放下一条指令所在单元的地址的地方。

循环寻址

循环寻址是DSP(数字信号处理器)三种数据寻址方式中的寄存器寻址的一种(另一种为线性寻址)。其一般使用通用寄存器A4~A7和B4~B7,在卷积、滤波运算中经常用到。

循环寻址在卷积、相关、FIR滤波算法中,要求在存储器中设置一个缓冲区作为滑动窗,保存最新一批数据。循环寻址过程中,不断有新的数据覆盖旧的数据,从而实现循环缓冲区寻址。

循环四要素

  1. 初始值:        int i=0
  2. 表达式:        i<10
  3. 循环体:        System.out.println(i)
  4. 迭代器:        i++

while循环

while:中文叫【当…时】,其实就是当条件满足时就执行代码,一旦不满足了就不执行了。

while循环语法:

while (条件)

{ 满足条件就执行 }

因为满足条件就执行,所以我们写的时候一定要注意,就是设定一个边界值,不然就一直循环下去了。也就是说控制好【表达式】与【迭代器】即可。

package com.item.action;
public class Main {
  public static void main(String args[]) {
    // 1. 初始值
    int i = 0;
    while (i < 10) {// 2. 表示
      // 3. 循环体
      System.out.println(i);
      // 4. 迭代器
      i++;
    }
  }
}

输出结果:

如果没有自身改变,那么就会一直循环不停了。

while死循环

死循环示例1:

这里去掉了循环四要素的第四个,迭代器,那么,由于程序循环过程中相当于没有控制元素,故而导致i的值是恒定的,所以会无限的循环执行下去。

package com.item.action;
public class Main {
  public static void main(String args[]) {
    // 1. 初始值
    int i = 0;
    while (i < 10) {// 2. 表示
      // 3. 循环体
      System.out.println(i);
      // 无迭代器则会出现死循环,无限输出i的值
//      i++;
    }
  }
}

无限循环初始值的值:

死循环示例2:

整个表达式我替换成了true,那么就代表没有出现false的情况,在这种情况下程序就只能无限的执行下去。

package com.item.action;
public class Main {
  public static void main(String args[]) {
    while(true) {
      System.out.println("死循环");
    }
  }
}

循环示例:

等差数列求和公式: =( + )n/2,可以翻译为:(首项+末项)×项数/2

数列求和对按照一定规律排列的数进行求和。求 实质上是求{ }的通项公式,应注意对其含义的理解。常见的方法有公式法、错位相减法、倒序相加法、分组法、裂项法、数学归纳法、通项化归、并项求和。数列是高中代数的重要内容,又是学习高等数学的基础。在高考和各种数学竞赛中都占有重要的地位。数列求和是数列的重要内容之一,除了等差数列和等比数列有求和公式外,大部分数列的求和都需要有一定的技巧。

我们使用基础循环思考方式:

这里计算我使用了【+=】的符号,【sum+=i】相当于【sum=sum+i】。这种符号的写法可以用在四则运算以及求余符号上。

package com.item.action;
public class Main {
  public static void main(String args[]) {
    int i = 1;// 1、初始值
    int sum=0;
    while(i<101) {//2、表达式
      sum+=i;//3、循环体
      i++;//4、迭代器
    }
    System.out.println(sum);
  }
}

结果输出:

这种方法实际循环了执行了100次,这里咱们的时间复杂度【O(n)】。

等差数列求和公式计算:

由于没有循环,那么时间复杂度就是【O(1)】。

package com.item.action;
public class Main {
  public static void main(String args[]) {
    int n = 100;
    int sum=(n+1)*n/2;
    System.out.println(sum);
  }
}

时间复杂度与空间复杂度我们在讲完for循环之后进行讲解。

do{}while()循环

与while循环的区别就是,无论表达式是否成立,都会进行一次判断。

package com.item.action;
public class Main {
  public static void main(String args[]) {
    int i = 0;// 1、初始值
    do {
      // 3、循环体
      System.out.println(i);
      i++;// 4、迭代器
    } while (i < 10);// 2、表达式
  }
}

do……while循环用的其实很少,我们了解其特性即可。

相关文章
|
7月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
115 0
|
7月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
88 0
|
7月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
92 0
|
7月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
97 0
|
6月前
质数类判断方法(蓝桥杯,循环分支题型)
质数类判断方法(蓝桥杯,循环分支题型)
|
7月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1007 印章
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1007 印章
71 0
|
7月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1006 拿金币
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1006 拿金币
72 0
|
7月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1004 无聊的逗
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1004 无聊的逗
99 0
|
7月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1003 礼物
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1003 礼物
96 0
|
7月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1001 跳马
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1001 跳马
71 0