增强for循环和Debug(排错)


增强For循环、break和continue、打印三角形及Debug


1.增强for循环:

  • 增强for循环这里我们先只是见一面,做个了解,之后数组会重点使用。
  • java5引入了一种, 主要用于遍历数组或集合的增强型for循环

  • 基本语法:

          for(声明语句:表达式  ){              
              //代码句子
          }
    
  • 关于增强for循环有以下几点说明

  • 1. 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等
  • 2. 表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

1.1 增强for循环演示:

package struct;

public class ForDemo06 {
    public static void main(String[] args) {
        int[] numbs={10,20,30,40,50};//定义了一个数组

        for (int i = 0; i < 5; i++) {
            System.out.println(numbs[i]);

        }
        System.out.println("======================");



        //遍历数组的元素
        for (int j :numbs) {   //把numbs数组中每一项的值循环赋值给j
            System.out.println("j = " + j);

        }

    }
}


运行结果

10
20
30
40
50
======================
j = 10
j = 20
j = 30
j = 40
j = 50


——————————————————————————————————————————————————————————————————————————

2.break与continue

  • break在任何循环语句的主体部分,均可用break控制循环的流程。 break用于强行退出循环,不执行循环中剩余的语句。 (break语句也在switch语句中使用)
  • continue语句用在循环语句体中, 用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定

  • break: 打破,强行终止 ? continue: 继续存在;(停顿后)继续,再开始;


2.1 break代码演示:

package struct;

public class BreakDemo01 {
    public static void main(String[] args) {
        //break在任何循环语句的主体部分,均可用break控制循环的流程,break用于强行退出循环,不执行循环中剩余的语句。
        int i=0;
        while (i<100){
            i++;
            //System.out.println("i = " + i);
            if(i==20){
                break;//当i等于20 时循环碰到break 直接强行终止掉循环
            }
            System.out.println("i = " + i);
        }

        System.out.println("12345");

    }

}

运行结果

i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9
i = 10
i = 11
i = 12
i = 13
i = 14
i = 15
i = 16
i = 17
i = 18
i = 19
12345


2.2 continue代码演示

package struct;

public class ContinueDemo01 {
    public static void main(String[] args) {
//        continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定
        int i=0;
        while (i<20){
            i++;

            if(i%2==0){
                System.out.println();
                continue;//当i为偶数时,由于continue 循环到此直接回到了i++ 处并没有执行下面的打印语句直接就跳过了

            }
            System.out.println(i);
        }
    }
}

运行结果

1

3

5

7

9

11

13

15

17

19



3.关于goto关键字

  • goto关键字很早就在程序设计语言中出现,尽管goto仍是java的一个保留字,但并未在语言中得到正式使用;java没有goto。然而,在break和continue这两个关键字的身上,我们仍然能看出一些goto的影子---带标签的break和continue。
  • “标签”是指后面跟一个冒号的标识符,例如: label:

  • 对于java来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,它们就会中断到存在标签的地方

3.1 continue中标签循环演示:

package struct;

public class LableDemo {
    public static void main(String[] args) {
        //打印101~150之间的所有质数
       // 质数是指在大于1的自然数中,除了1和它本事以外不再有其他因数的自然数。
        int count=0;


         //        不建议使用
        outer:for (int i = 101; i <150 ; i++) {
                    for (int j=2;j

运行结果

i = 101 i = 103 i = 107 i = 109 i = 113 i = 127 i = 131 i = 137 i = 139 i = 149 


4.打印三角形和Debug

4.1 for循环打印三角形演示:

package struct;

public class TestDemo {
    public static void main(String[] args) {
  // 使用for循环   打印三角形

        //首先,打印三角形可以是在长方形中取出一个三角形
        //先打印一个倒立的三角形。让其成为空白部分
        //再打印一个对折后的三角形,也就是九九乘法表对折后
        //最后再打印另外半个三角形,也就是九九乘法表
        for (int i = 1; i <= 9; i++) {
            for (int j = 9; j >=i ; j--) {
                System.out.print(" ");

            }
            for (int j = 1; j <=i ; j++) {
                System.out.print("*");
            }
            /*for (int j = 1; j 

运行结果

         *
        ***
       *****
      *******
     *********
    ***********
   *************
  ***************
 *****************

4.2 断点调试Debug

4.21 Debug简介

  • 什么是程序Debug?

    • Debug,是程序开发人员必会的一项调试程序的技能,Debug模式是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序。
  • Debug能帮助我们做什么?

    • 追踪代码的运行流程
    • 程序运行异常定位和调试
    • 线上问题追踪
  • Debug对于程序学习者的意义?

    • 通过调试能够更好的查看程序的执行流程
    • 复杂的程序逻辑,通过别人的口述讲解,很难理解清楚,这个时候借助调试能够很好的帮助我们理解程序
    • 定位问题,提高自我解决问题的能力

————————————————————————————————————————————————————————————————————————————

4.22 IDEA中的Debug步骤

  • 1. 设置断点

  • 2. 调试程序(8个按钮)

  • 3. 观察变量

    • 查看变量有三种方式:
      • 程序区查看变量
      • Debugger的Variables(变量)中查看变量
      • 鼠标悬停到变量名上会弹出当前变量的值
  • 4. 查看输出:在Console(仪表板)窗口看程序执行过程中的结果展示

    • 详情参考:Debug模式操作流程

4.23 步过调试的使用

  • 步过调试(Step Over :跨过 )
    • 步过调试按钮:F8
  • 作用
    • 步过,一行一行的往下走,如果这一行上有方法不会进入方法。
    • 常用于调试过程中不想进入调用的方法体的情况

4.24 步入调试的使用

  • 步入调试(Step Into :踏入 )
    • 步过调试按钮:F7
  • 作用
    • 步入,一行一行的往下走,如果这一行上有方法则进入方法内部。
    • 一般用于进入自定义方法内,不会进入官方类库的方法

4.25 强制步入调试的使用

  • 步入调试(Force Step Into:强行进入)
    • 步过调试按钮:Alt+Shift+F7
  • 作用
    • 进入官方类库方法
    • 帮助我们学习和查看JDK源码

4.26 步出调试的使用

  • 步入调试(Step Out :退出 )
    • 步过调试按钮:Shift+F8
  • 作用
    • 从方法内退出到方法调用处。
    • 调试的时候,有时候会跳入到自己不想查看的方法体,这个时候使用步出

4.27 回退断点调试的使用

  • 作用
    • 回退到当前方法的调用处
    • 当想重新查看该方法体的执行过程时,不用重新启动Debug,可以使用回退断点方式

4.28 运行到光标处

  • 运行到光标处(Run to Cursor :运行至光标处 )

    • 步过调试按钮:Alt+F9
  • 作用

    • 使程序运行到光标处,而无需设置断点

5. 更多参考

狂神说Java
程序调试入门教程