Java Eclipse如何调试代码

news2024/9/20 20:45:34

下面通过一个简单的例子来了解一下 Eclipse 调试程序的方法。上述代码完成的主要功能是如果 i 值满足小于或等于 5 的条件,就一直执行输出语句。可以看到 for 关键字后面的小括号中有三个表达式,第一个表达式int i=0的作用是定义一个 int 类型的变量并赋初值为 0,第二个表达式i<=5说明 i 要满足的条件是小于或等于 5,第三个表达式i++的意思是程序每执行一次 i 加 1。

对初学者来说,可能对这几个表达式的理解不太透彻,这样就会对每次控制台中输出的 i 值有所怀疑。接下来介绍每次执行程序后 i 值的变化。

在调试程序时常用的方法就是设置断点,跟踪调试,查看变量值的变化。调试上述代码的方法如下。

(1) 设置断点。双击要插入断点的语句行前面的蓝色区域,这时该行最前面会出现一个蓝色的圆点,也就是断点。本例在第 6 行 for 语句处添加了断点,如图 1 所示。如果想要取消该断点,直接双击断点所在的行号即可。

图 1 添加断点

(2) 选择“Window(窗口)”|“Show View(显示视图)”|“(Breakpoints)断点”命令,打开“Breakpoint(断点)”窗格,在这里可以看到 Test 的第 6 行有一个断点,如图 2 所示。

图 2 “断点”窗格

(3) 要以调试方式运行程序,需要在工具栏中单击“调试”按钮,这样执行到断点的位置时弹出如图 3 所示的对话框,可以发现将要执行的 for 语句已经变成了绿色。单击“Switch(是)” 按钮进入调试模式,如图 4 所示。

图 3 询问是否进入调试模式

图 4 调试模式

(4) 单击

按钮或者直接按 F6 键,程序开始单步执行。这时可以看到“变量(图 4 中的)”窗格中 i 的值是 0,然后继续执行,“控制台”窗格输出“这时的 i 值为 0”。

(5) 继续执行会发现程序重新回到 for 循环开始的位置,准备开始下一次的执行。此时,i 值变化为 1 且“变量”窗格中显示 i 值的行变为了黄色,如图 5 所示。

图 5 “变量”窗格

(6) 继续一直单击

按钮,直到程序执行完毕。在这个过程中,可以看到 i 值又从 1 依次变化到 5,然后程序执行结束。

在上述的调试过程中,查看程序中变量值的变化,可以更好地理解程序的执行流程,这种设置断点的调试方式是初学者必须掌握的。

下面给初学者介绍一些如何减少错误的建议。

  • 使用 Java 的命名规范,减少命名出错的概率。

  • 掌握一定的计算机专业英语,能够读懂一些错误信息,便于根据提示査找错误和修改错误。

  • 理解代码的含义之后自己练习写代码,而不是抄写代码。

  • 多看、多练、多思考。

https://www.bilibili.com/video/BV1yW4y1T7Yb/?spm_id_from=333.999.0.0&vd_source=96bd6c0a2bc667ee6713079257ccf5ad

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/138975.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

193:vue+openlayers 多边形的绘制,编辑feature,删除所选feature和清空功能

第193个 点击查看专栏目录 本示例的目的是介绍如何在vue+openlayer中使用select来选择feature元素,选中的元素可以编辑,也可以删除,同时可以删除整个图层的source内容。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意如果OpenStreetMap无法加载,…

IOS技术分享| IOS快对讲调度场景实现

前言 “快对讲” 是基于 anyRTC 音视频技术 对讲业务的产品&#xff0c;为客户提供专业对讲、多媒体对讲和可视化调度功能。 主要功能包含&#xff1a; 频道与会话多频道对讲、监听、锁定、强拆音视频单人、多人呼叫、呼叫调度台图片、视频上报视频回传、监看位置回传即时消息…

【CUDA】C++实现warpaffine仿射变换及其逆变换

目录仿射变换矩阵工具类进行前向仿射变换&#xff1a;i->d进行仿射变换逆向变换d->i仿射变换矩阵工具类 假设有图片i&#xff0c;要将其仿射变换至图片d&#xff0c;使用下面的类计算仿射变换矩阵i2d及d2i&#xff1a; 在调用compute函数后&#xff0c;输入i及d的尺寸&a…

[3] Jenkins 系列:如何获取出发Jenkins Job的用户信息?

Jenkins提供两种方式的Script&#xff0c;一种是基于声明式的&#xff0c;一种是基于脚本式的。 Jenkins申明式的格式 Jenkins脚本式的格式 Jenkins 官方推荐使用申明式的方式定义Jenkins的Pipeline。 有的时候我们需要在Pipeline给开发团队发消息或者邮件&#xff0c;告知当…

MAC(m1)-VMWare Fusion安装CentOS7.9

下载安装VMWare Fusion&#xff0c;安装完成后打开 https://blog.csdn.net/ZHOU_VIP/article/details/128513824 centos7.9安装镜像拖过来&#xff1a; 打开自定义设置&#xff1a; 换文件夹&#xff1a; 问题出来了&#xff0c;点击install闪一下&#xff0c;就没了&#xff…

C进阶:结构体的内存对齐

目录 本篇文章注意讲解结构体的内存对齐。 &#x1f54a;️&#x1f432;一.为什么存在内存对齐 &#x1f916;&#x1f47b;二.内存对齐规则 &#x1f42c;&#x1f431;三.实例 &#x1f407;例1. &#x1f984; 例2. &#x1f42f;例3. &#x1f63c;例4. 一.为什么…

二十四节气-小寒。文案、海报分享,小寒料峭 年味渐浓。

小寒&#xff0c;是二十四节气中的第23个节气&#xff0c;冬季的第5个节气&#xff0c;正处在“二九”“三九”期间&#xff0c;可以说是一年中最冷的时段。 中国古代将“小寒”分为三候&#xff1a;“一候雁北乡&#xff0c;二候鹊始巢&#xff0c;三候雉始鸲。” 大雁开始向…

Java堆空间(Heap Space)

Java 堆空间(Heap Space)概述在Java程序中&#xff0c;堆是JVM内存空间中最大的一块&#xff0c;同时我们知道&#xff0c;每个线程都拥有一个虚拟机栈&#xff0c;但是堆不同&#xff0c;Java堆是被所有线程共享的一块内存区域&#xff0c;在虚拟机启动时创建。在《Java虚拟机…

STM32——TIM输入捕获

文章目录一、TIM输入捕获输入捕获简介频率测量二、通用定时器的输入捕获通道通用定时器框图通道的输出部分三、主从触发模式主模式从模式四、输入捕获基本结构五、PWMI基本结构六、输入捕获模式测频率电路设计关键代码七、PWMI模式测频率占空比电路设计关键代码八、定时器库函数…

分而治之——图的连通性问题及板子

连通性的判断 两大算法&#xff1a;并查集 和 图的遍历&#xff08;DFS BFS&#xff09; 分而治之的题目与解答 在这道题的下面 3587. 连通图 - AcWing题库 连通性的判断 两种方法 1.这里连通性的判断是判断连通分支是否包含所有的点。 2.也可以不开cnt数组&#xff0c;直接…

【算法】贪心算法(第四章习题解答)

4 贪心算法 4.1 若在 0−10-10−1 背包问题中, 各物品依重量递增排列时, 其价值恰好依递减序排列. 对于这个特殊的 0−10-10−1 背包问题, 设计一个有效算法找出最优解, 并说明算法的正确性. 算法设计&#xff1a;由题目所给的信息可以知道这种特殊的背包问题可以通过贪心算法…

基于多保真方法来估计方差和全局敏感度指数分析(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 此代码实现了多保真方法来估计方差和全局敏感度指数。当模型具有不确定的输入时&#xff0c;模型输出也是不确定的。基于方差的…

C++与QML混合编程

一、前言 简单来说&#xff0c;混合编程就是通过Qml高效便捷的构建UI界面&#xff0c;而使用C 来实现业务逻辑和复杂算法。Qt集成了QML引擎和Qt元对象系统&#xff0c;使得QML很容易从C 中得到扩展&#xff0c;在一定的条件下&#xff0c;QML就可以访问QObject派生类的成员&am…

112.(leaflet之家)leaflet椭圆修改

听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html> <html>

OpenHarmony之轻量系统编译构建流程

首先我们先来熟悉几个概念&#xff1a; - 子系统 子系统是一个逻辑概念&#xff0c;它由一个或多个具体的组件组成。OpenHarmony整体遵从分层设计&#xff0c;从下向上依次为&#xff1a;内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 组件”逐级…

别人家的公司年终奖52个月工资-互联网企业年终裁员脸在哪

52个月工资&#xff0c;开玩笑吧&#xff0c;还真不是。据台湾媒体报道&#xff0c;中国台湾长荣海运年终奖出炉&#xff0c;继去年40个月年终奖后&#xff0c;今年再创新高&#xff0c;传言最高发放52个月年终奖金。以基层员工月薪5万新台币计算&#xff0c;表现好的员工可领到…

6.vector、set和map

一、vector 1.简介 有些时候想开一个数组&#xff0c;但是却不知道应该开多大长度的数组合适&#xff0c;因为我们需要用到的数组可能会根据情况变动。这时候我们就需要用到动态数组。 所谓动态数组&#xff0c;也就是不定长数组&#xff0c;数组的长度是可以根据我们的需要…

第四章快速排序——分而治之

分而治之&#xff08;divide and conquer,D&C&#xff09; D&C算法是递归的&#xff0c;并且有2个步骤&#xff1a; 找出基线条件&#xff0c;并且条件尽可能简单不断将问题分解&#xff0c;直到符合基线条件 给定一个数组&#xff0c;求和&#xff1a; 利用循环很容…

秒懂双向链表

目录 一、双向链表概述 二、模拟实现双向链表 1、头插法插入元素 2、尾插法插入元素 3、在指定位置插入元素 4、查询双向链表中是否包含key 5、删除第一次出现关键字为key的结点 6、删除所有值为key的结点 7、求双向链表的长度 8、遍历双向链表 9、清空双向链表 三…

【 uniapp - 黑马优购 | 商品列表 】如何实现数据获取、结构渲染、自定义组件的封装

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大二在校生&#xff0c;讨厌编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;小新爱学习. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc…