Java 如何调试IntelliJ中的逻辑错误

Java 如何调试IntelliJ中的逻辑错误,java,debugging,intellij-idea,Java,Debugging,Intellij Idea,我正在学习Java,现在正在研究调试。然而,它刚刚出现在我的脑海中,并且正在寻找一种解决方案来调试IntelliJ中的逻辑错误(也许这就是所谓的!)。例如: public static void main(String[] args) { int hour, minute; hour = 10; minute = 30; System.out.println("The total number of minutes is " +

我正在学习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));

但是如果我必须编写更大的程序,那么我应该如何在IntelliJ中调试它呢

注:
我编辑了这个问题。我在几分钟内就获得了选票,还有一些有用的答案。可能我对这个问题不太清楚,或者可能Stackoverflow不适合初学者。

问题的一个方面是演示和计算的混合。因此,很难调试结果,也很难为其编写测试用例

而不是:

System.out.println("The total number of minutes is " + 60 * hour + minute);
最好有一种方法:

public int calculateMinutes(int hours, int minutes)
{
   //perform calculations
}
然后,我们可以编写一系列测试用例,使用已知的方法值,并合理地预期结果是正确的。然后,一个 可以做类似的事情(使用OP问题中的小时、分钟):

通过这种方式,有希望通过编写测试用例和潜在的单步执行方法进行调试


TL;DR:将计算与演示分开以支持测试用例和调试。

您所要做的就是将计算括在括号中,以便首先对其进行评估:

System.out.println("The total number of minutes is " + (60 * hour + minute));

否则,此表达式将被解释为字符串串联,这将导致乘法错误
*

要调试什么?点击run,看看会出现什么错误?花点时间阅读intellij手册中的调试功能-如何使用断点、计算任意表达式等。。。虽然它可能对您提出的问题没有多大帮助,但对于任何一个渴望成为一名优秀程序员的人来说,它无疑是非常值得花费的时间。在这里发布之前,我在谷歌上搜索了一下,但没有找到如何调试“逻辑错误”的地方。我知道这是否合乎逻辑,那是我的错误,但是,我想问的是,是否有可能在IntelliJThank you中找到它,但我确实提到我在这里犯了一个错误,并且正在寻找如何调试它。也许我不清楚,所以把选票拿下来@拉朱:不,不是因为问题不清楚,而是研究得不好。使用谷歌,您可以轻松找到调试程序的方法,或者找到如何使用IntelliJ内置调试器的方法,和是谷歌搜索intellij调试器时的第一个条目。这里已经有答案了。我在这里发布之前用谷歌搜索了一下,但是没有找到如何调试“逻辑错误”的地方。上面的例子显示了一个我知道答案的简单例子,但我的问题是:如果我不知道答案并且在编程时出错了怎么办?答案会被打印出来,但也会是错误的,我会一直相信这就是我一直在寻找的。我希望我是清楚的。再次感谢。
int totalMinutes = calculateMinutes(hour, minute);
System.out.println("The total number of minutes is " + totalMinutes);
System.out.println("The total number of minutes is " + (60 * hour + minute));