增强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
程序调试入门教程