单步调试

单步调试

问题:

断点定位在User1_11,发现程序不能运行完整,最后一句显示不出来,就在UserTest1_11程序最后一行也打了一个断点,还是显示不出来。


但不用单步调试,直接运行Run As,就可以运行完全,这是为什么?


截图:

单步调试

https://img1.sycdn.imooc.com//climg/62aff4b108a787cc14400860.jpg

Run As

https://img1.sycdn.imooc.com//climg/62aff4f7085ce61a14400860.jpg


代码:

User1_11

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class User1_11 {
    // 定义属性用户名、密码
    private String name;
    private String pwd;
 
    public User1_11(String name, String pwd) {
        this.setName(name);
        this.setPwd(pwd);
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getName() {
        return this.name;
    }
 
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
 
    public String getPwd() {
        return this.pwd;
    }
 
    public void info() {
        System.out.println("用户名:" this.name);
        System.out.println("密码:" + pwd);
    }
}

UserManage1_11

1
2
3
4
5
6
7
8
9
10
11
public class UserManage1_11 {
    // 用户信息验证的方法
    public void checkUser(User1_11 one, User1_11 two) {
        // 判断用户名和密码是否为空,是否一致
        if (one.getName().equals(two.getName()) && one.getPwd().equals(two.getPwd())) {
            System.out.println("用户名和密码一致");
        else {
            System.out.println("用户名或密码不一致");
        }
    }
}

UserTest1_11

1
2
3
4
5
6
7
8
9
10
11
12
13
public class UserTest1_11 {
    // 测试方法
    public static void main(String[] args) {
        // 实例化对象,调用相关方法实现运行效果
        User1_11 one = new User1_11("Lucy""123456");
        User1_11 two = new User1_11("Mike""123456");
        one.info();
        two.info();
        System.out.println("===");
        UserManage1_11 um = new UserManage1_11();
        um.checkUser(one, two);
    }
}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小小 2022-06-20 13:42:19

同学你好

1、未使用debug模式运行,程序会逐行执行,直到结束为止。故直接run as是可以正常运行输出结果。

2、使用debug模式运行,程序启动运行后会停在断点处,需要手动点击执行。

上述程序并未执行完成,故控制台输出不完整。如下:
https://img1.sycdn.imooc.com//climg/62b006e7097506d403830182.jpg

程序中存在四处断点,程序运行到断点出会暂停执行。可手动点击F6继续执行。

https://img1.sycdn.imooc.com//climg/62b008650920260911010381.jpg

祝学习愉快~

  • 提问者 EllaAzure #1

    问题是,当程序运行到UserTest的最后一行um.checkUser(one,two);,就停止了,不管按键盘上的F6,还是编辑器上的step into 或者step over键,都是无效的。


    最后一行的输出结果“用户名或密码不一致“,也是显示不出来的,为什么?

    2022-06-21 12:22:36
  • 好帮手慕小小 回复 提问者 EllaAzure #2

    同学你好,um.checkUser(one,two);上存在断点,故程序运行到此处会暂停执行,需点击step over才会继续执行。又因check方法体内仍存在断点,故会继续停止至此方法体内断点位置处,需继续点击step over继续向后执行。

    同学多点击几次step over即可。

    https://img1.sycdn.imooc.com//climg/62b1593c095c56ab01430055.jpg

    https://img1.sycdn.imooc.com//climg/62b15a77093b403406870328.jpg

    祝学习愉快~

    2022-06-21 13:47:07
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码