我正在学习Java,现在只是在调试。然而,它只是出现在我的脑海中,正在寻找一种解决方案来解决如何在IntelliJ中调试逻辑错误(也许这就是所谓的!)。例如:
public static void main(String[] args) {
int hour, minute;
hour = 10;
minute = 30;
System.out.println("The total number of minutes is " + 60 * hour + minute);
}
你可以看到我在这里犯了一个错误,应该是:
System.out.println("The total number of minutes is " + (60 * hour + minute));
或者
System.out.println(60 * hour + minute + " is the total no. of minutes.");
但如果我必须编写更大的程序,那么我应该如何在IntelliJ中调试它?
注意: 我编辑了这个问题。我在几分钟内得到了投票以及一些有用的答案。也许我不清楚这个问题,或者Stackoverflow不适合初学者。
答案 0 :(得分:0)
问题的一个方面是演示与计算的混合。因此,很难调试结果,也无法为其编写测试用例。
而不是:
System.out.println("The total number of minutes is " + 60 * hour + minute);
最好有一种方法:
public int calculateMinutes(int hours, int minutes)
{
//perform calculations
}
然后,可以编写一系列具有针对该方法的已知值的测试用例,并且合理地期望结果是正确的。然后,一个 可以做类似的事情(使用OP问题中的小时,分钟):
int totalMinutes = calculateMinutes(hour, minute);
System.out.println("The total number of minutes is " + totalMinutes);
通过这种方式,通过编写测试用例并可能逐步完成该方法,可以进行调试。
TL; DR:从演示文稿中单独计算以支持测试用例和调试。
答案 1 :(得分:0)
您所要做的就是将计算括在括号中,以便首先评估:
System.out.println("The total number of minutes is " + (60 * hour + minute));
否则该表达式被解释为字符串连接,这将导致乘法*
出错。