简单的断点调试(加薪的例子)

**断点调试的作用:**监控变量、快速发现问题。

本次用到的是加薪的例子:

员工加薪:
员工一年最多只能申请加薪四次,
加薪后的工资不能高于20000
package case_learning;

public class Employee {
	private int salary = 3000;//设置基本工资为3000
	private int appealCount = 0;//申请加薪的次数
	
	public void addSalary(int alpha)  //加薪的方法,参数为申请的加薪金额 
	{
		//this区分对象是局部/全局    /"++this……"方法addSalary被调用一次,申请就增加一次
		if(this.salary+alpha<20000&&++this.appealCount<=4)  
		{
			this.salary += alpha;
			System.out.println("加薪申请成功!当前薪水:"+this.salary);
		}
		else
		{
			System.out.println("加薪申请失败!");
		}
	}
	public static void main(String[] args) {
		Employee emp = new Employee();
		emp.addSalary(5000);
		emp.addSalary(5000);
		emp.addSalary(5000);
		emp.addSalary(5000);
	}

}

超出薪资限额

加薪申请成功!当前薪水:8000
加薪申请成功!当前薪水:13000
加薪申请成功!当前薪水:18000
加薪申请失败!

更改申请金额:

public static void main(String[] args) {
		Employee emp = new Employee();
		emp.addSalary(2000);
		emp.addSalary(2000);
		emp.addSalary(2000);
		emp.addSalary(2000);
		emp.addSalary(2000);
	}

超出申请次数:

加薪申请成功!当前薪水:5000
加薪申请成功!当前薪水:7000
加薪申请成功!当前薪水:9000
加薪申请成功!当前薪水:11000
加薪申请失败!

但是
更改申请金额如下的时候:

	public static void main(String[] args) {
		Employee emp = new Employee();
		emp.addSalary(5000);
		emp.addSalary(5000);
		emp.addSalary(5000);
		emp.addSalary(5000);
		emp.addSalary(1000);
	}

结果为:

加薪申请成功!当前薪水:8000
加薪申请成功!当前薪水:13000
加薪申请成功!当前薪水:18000
加薪申请失败!
加薪申请成功!当前薪水:19000

在申请第四次超出限额失败后第五次依然可以成功
于是,出现了bug

断点调试,在这里右击鼠标插入断点:
在这里插入断点点击这个小虫子
在这里插入图片描述点击执行会出现:
在这里插入图片描述然后按F6,会依次出现:
按F6第一次:
在这里插入图片描述第二次:
在这里插入图片描述第三次:
在这里插入图片描述第四次:(未执行)
在这里插入图片描述第五次:(本会失败)
在这里插入图片描述
原因是在第四次执行的时候,这条代码的后半部分并没有跑(出现了逻辑表达式的短路问题 “false&&” 短路语句,前面一个条件错误,后一个条件不执行)

if(this.salary+alpha<20000&&++this.appealCount<=4)

只需要把加薪方法中的代码改为:

public void addSalary(int alpha)  //加薪的方法,参数为申请的加薪金额 
	{
		//this区分对象是局部/全局    /"++this……"方法addSalary被调用一次,申请就增加一次
		//if(this.salary+alpha<20000&&++this.appealCount<=4) 
		if (++this.appealCount>4)
		{
			System.out.println("到达最大申请次数,加薪失败!");
			return;  //终止
		}
		if(this.salary+alpha<20000)
		{
			this.salary += alpha;
			System.out.println("加薪申请成功!当前薪水:"+this.salary);
		}
		else
		{
			System.out.println("加薪申请失败!");
		}
	}

运行结果:

加薪申请成功!当前薪水:8000
加薪申请成功!当前薪水:13000
加薪申请成功!当前薪水:18000
加薪申请失败!
到达最大申请次数,加薪失败!

可以再次按上面断点调试的方法走一遍运行过程(自行完成)

注意:第一次写完代码的时候务必要使用断点调试跑一边流程
java、js、存储过程皆可使用断点调试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值