【Java基础】05多重循环及程序调试(break continue return的区别 idea程序调试快捷键)

文章目录

多重循环

一个循环体内又包含另一个完整的循环结构 。

如:while 循环内部包含while 循环、while 循环内部包含for 循环、do while 循环内部包含do while 循环、for 循环内部包含for 循环等。使用时应注意:

  • 各循环可互相嵌套
  • 一般不超过三层
  • 外层循环变量变化一次,内层循环变量要变化一遍

break语句

break改变程序控制流,用于do-while、while、for循环中,终止某个循环,程序跳转到循环块外的下一条语句。

  • 通常在循环中与条件语句一起使用
  • 使用场合:break常用于switch结构和循环结构中
java 复制代码
for(int i = 1; i <= 10; i++) {
    if(i == 9) {
        break;
    }
    System.out.println("i = " + i);
}
// 输出到i = 8停止

continue语句

continue只能用在循环里,作用是跳出本次循环,进入下一次循环。

  • 通常与条件语句一起使用,加速循环
  • 使用场合:continue一般用于循环结构中
java 复制代码
for(int i = 1; i <= 10; i++) {
    if(i == 9) {
        continue;
    }
    System.out.println("i = " + i);
}
// 未输出i = 9

return语句

return结束一个方法。 一旦在循环体内执行到一个return语句,return语句将会结束该方法,循环自然也随之结束。与continue和break不同的是,return直接结束整个方法,不管这个return处于多少层循环之内。

程序调试

发现和定位程序中的错误,可以通过代码阅读或者加输出语句查找程序错误,当程序结构越来越复杂时,需要专门的技术来发现和定位错误,就是"程序调试"。

程序调试过程

  • 设置断点(程序暂停执行的代码行)
  • 单步运行
  • 观察变量

idea调试快捷键

快捷键 英文说明 中文说明
F8 Step over 跳到当前代码下一行。
F7 Step into 跳入到调用的方法内部代码。
Shift + F7 Smart step into 会打开一个面板,让你选择具体要跳入的类方法,这个在复杂的嵌套代码中特别有用。
Shift + F8 Step out 跳出当前的类,到上一级。
Alt + F9 Run to cursor 让代码运行到当前光标所在处。
Alt + F8 Evaluate expression 打开一个表达式面板,然后进行进一步的计算。
F9 Resume program 结束当前断点的本轮调试(因为有可能代码会被调用多次,所以调用后只会结束当前的这一次);如果有下一个断点会跳到下一个断点中。
Ctrl + F8 Toggle breakpoint 在当前光标处,添加或者删除断点。
Ctrl + Shift + F8 View breakpoints 打开当前断点的面板,可以进行条件过滤哦。
相关推荐
气泡水好喝12 小时前
Java魔法探秘:从Java代码到CPU指令,一个方法调用的完整生命周期
java
气泡水好喝12 小时前
读《阿里巴巴Java开发手册》五年,这7条规约救了我太多次
java
凯哥Java12 小时前
System.setProperty 的正确姿势:Spring Boot 启动类里的“缺省值“魔法
java·spring boot·后端
lhldsg13 小时前
智慧场馆解决方案小程序系统:从架构设计到落地实践
java·小程序·需求分析
hfywmsj13 小时前
广州餐饮铺位招租的选址架构:流量入口与成本函数分析
java·大数据·jvm·广州餐饮铺位招租
爪哇岛国人13 小时前
原来我一直理解错了:实现接口真的必须实现所有方法吗?
java
万年咸鱼13 小时前
Java BufferedOutputStream 详解:原理、用法与性能优化
java·开发语言·性能优化
万年咸鱼14 小时前
Java BufferedInputStream 详解:原理、用法与实战
java·开发语言·python
~木雨14 小时前
Java 线程池七问七答:参数、执行流程、拒绝策略到 ThreadLocal 内存泄漏,面试必背
java·面试·线程池·threadlocal·threadpool·executor
艾莉丝努力练剑14 小时前
【AI大模型接入SDK】Gemini模型接入知识体系
java·开发语言·网络·人工智能·网络协议·学习·http