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

153 阅读3分钟

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

员工加薪:
员工一年最多只能申请加薪四次,
加薪后的工资不能高于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、存储过程皆可使用断点调试。