您的位置:首页 > 编程语言

基本程序逻辑:循环结构知识点归纳和代码展示

2020-06-13 13:17 85 查看

LoopStructure 循环结构

  • 3.分类
  • 3.2:while 循环
  • 3.3:do-while 循环
  • 4.总结
  • 5. 嵌套循环
  • 6. break和continue 关键字的使用
  • 7.return语句和break语句及continue语句的区别
  • 5. 代码示例展示
  • 1.定义

    定义:在某些条件满足的情况下,反复执行特定代码的功能。

    2.组成部分

    2.1:具体基本组成

    4部分构成(当然这是基本结构,后续可根据需要灵活变通)。
    ①初始化部分(init_statement)(确定变量的类型和初值);
    ②循环条件部分(test_exp)(布尔型关系式);
    ③循环体部分(body_statement)(确定重复执行代码);
    ④迭代部分(body_statement)(确定变量值变化的趋势和幅度)

    2.1.1:注意

    1. ②循环条件部分为boolean类型表达式,当值为false时,退出循环。(退出循环的方式之一)
    2. ①初始化部分可以声明多个变量,但必须是同一个类型,用逗号分隔。
    3. ④迭代部分可以有多个变量更新,用逗号分隔
    4. 切记避免死循环发生。

    3.分类

    共3类。 for 循环; while 循环; do-while 循环。

    3.1:for 循环

    3.1.1:语法格式

    for (①; ② ; ④ ){
    ③ ;

    3.1.2:执行过程

    执行过程: ①-②-③-④-②-③-④-②-③-④-…-②
    (不满足循环条件部分,跳出循环)

    3.2:while 循环

    3.2.1:语法格式

    ① 初始化部分
    while(② 循环条件部分){
    ③循环体部分;
    ④迭代部分;
    }

    3.2.2:执行过程

    执行过程: ①-②-③-④-②-③-④-②-③-④-…-②
    (不满足循环条件部分,跳出循环)

    3.2.3:注意

    1. 注意不要忘记声明④迭代部分。否则,循环将不能结束,变成死循环。
    2. for循环和while循环可以相互转换 。
      区别:for循环和while循环的 ①初始化条件部分 的作用范围不同。

    3.3:do-while 循环

    3.3.1:语法格式

    ① 初始化条件
    do{
    ③循环体部分;
    ④迭代部分;
    }while(②循环条件部分);

    3.3.2:执行过程

    执行过程: ①-③-④-②-③-④-②-③-④-…-②
    (不满足循环条件部分,跳出循环)

    3.3.3:注意

    1. do-while 循环至少执行一次循环体;即 ①-③-④-② (不满足循环条件部分,跳出循环)-③-④-…-②(不满足循环条件部分,跳出循环)。
    2. 开发中,使用for和while更多一些,较少使用do-while 。

    4.总结

    4.1 不在循环条件部分限制次数的结构格式

    2种;
    方式一:for(;;)
    方式二: while(true)

    4.2 结束循环的方式

    2种;
    方式一:循环条件部分返回false
    方式二:在循环体中,执行break

    5. 嵌套循环

    5.1:定义理解

    嵌套循环:将一个循环放在另一个循环体内,就形成了嵌套循环。其中 for ,while ,do…while 均可以作为外层循环或内层循环。(实质上嵌套循环就是把内层循环当成外层循环的循环体。当内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。)

    5.2:具体应用

    理解:设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行 m * n 次。

    外层循环控制行数,内层循环控制列数。

    6. break和continue 关键字的使用

    关键字 使用范围 循环中作用的不同点 相同点
    break switch-case和循环结构中 结束当前循环 关键字后面不能声明执行语句
    continue 循环结构中 结束当次循环 关键字后面不能声明执行语句

    6.2:laber: 标签

    break和continue关键字都可以结合laber标签使用,表明结束标签示意的循环结构。

    6.2.1:注意

    注意:标号语句必须紧接在循环的头部。标号语句不能用在非循环语句的前面。

    6.2.2:格式

    格式:

    1. break laber;
      break语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一个循环
    2. continue laber;
      continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环

    7.return语句和break语句及continue语句的区别

    return:并非专门用于结束循环的,它的功能是结束一个方法。当一个方法执行到一个return语句时,这个方法将被结束。
    区别 : 与break和continue不同的是,return直接结束整个方法,不管这个return处于多少层循环之内。

    5. 代码示例展示

    循环结构代码片

    //遍历100以内的偶数,输出所有偶数的和,输出偶数的个数。
    public void scoreAdd() {
    /*        //方式一:
    int sum = 0;//记录所有偶数的和
    int count = 0;//记录偶数的个数
    for(int i = 1;i <= 100;i++){
    if(i % 2 == 0){
    System.out.println(i);
    sum += i;
    count++;
    }
    //System.out.println("总和为:" + sum);
    }
    System.out.println("总和为:" + sum);
    System.out.println("个数为:" + count);
    */
    //方式二:
    int num = 1;
    int sum = 0;//记录总和
    int count = 0;//记录个数
    do {
    if (num % 2 == 0) {
    System.out.println(num);
    sum += num;
    count++;
    }
    num++;
    } while (num <= 100);
    
    System.out.println("总和为:" + sum);
    System.out.println("个数为:" + count);
    
    }
    //break和continue的测试是
    public void test1() {
    
    for (int i = 1; i <= 10; i++) {
    
    if (i % 4 == 0) {
    break;  //输出结果:123
    //continue;  //输出结果:123567910
    //System.out.println("今晚迪丽热巴要约我!!!");
    }
    System.out.print(i);
    }
    System.out.println("\n");
    
    label:
    for (int i = 1; i <= 4; i++) {
    for (int j = 1; j <= 10; j++) {
    
    if (j % 4 == 0) {
    //break;  //默认跳出包裹此关键字最近的一层循环。
    //continue;
    //break label;  //结束指定标识的一层循环结构
    continue label;  //结束指定标识的一层循环结构当次循环
    }
    System.out.print(j);
    }
    
    System.out.println();
    }
    
    }
    //输出两种形态的菱形。
    public void testRhombus() {
    //第一种,*号之间无空格。
    for (int i = 1; i <= 5; i++) {
    for (int k = 1; k <= (5 - i); k++) {
    System.out.print(" ");
    }
    for (int j = 1; j <= (2 * i - 1); j++) {
    System.out.print("*");
    }
    System.out.println();
    }
    for (int i = 4; i >= 1; i--) {
    for (int k1 = 1; k1 <= (5 - i); k1++) {
    System.out.print(" ");
    }
    for (int j = 1; j <= (2 * i - 1); j++) {
    System.out.print("*");
    }
    System.out.println();
    }
    //第二种,*号之间有空格。
    for (int m = 1; m <= 5; m++) {
    for (int z = 1; z <= (5 - m); z++) {
    System.out.print(" ");
    }
    for (int n = 1; n <= m; n++) {
    System.out.print("* ");
    }
    System.out.println();
    }
    for (int m1 = 4; m1 >= 1; m1--) {
    for (int z1 = 1; z1 <= (5 - m1); z1++) {
    System.out.print(" ");
    }
    for (int n1 = 1; n1 <= m1; n1++) {
    System.out.print("* ");
    }
    System.out.println();
    }
    }
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: