我迷路了。在我的Java 1类中,我应该调试这个简单的代码并修复它。这是一个简单的高尔夫游戏。我知道这个问题基本上是要求你们做我的作业,但是我希望帮助你们在未来的调试任务中找到正确的方向。
GolfGame.java
import java.util.Scanner;
/*
* Debugging Exercise - Chapter 4
*
* Debug the error(s) and submit to the Dropbox on Angel
* Please do not submit if it is not debugged
*
*/
///////////////////////////////////////////////////////////////////////////////
// READ ME FIRST:
// This program compiles, but, there is logic error in the while statement.
// Debug the logic error and run the program to calculate your golf score.
// Try inputting several numbers to get the total score.
// The program should keep looping until the user selects -1 to terminate.
///////////////////////////////////////////////////////////////////////////////
public class GolfGame {
Scanner input = new Scanner(System.in);
public void getTotalScore() {
int score = 0, total = 0;
while ( score == -1 )
{
System.out.print("Please enter a score [-1 to quit]: ");
score = input.nextInt();
System.out.println();
total += score;
}
if (total != -1)
System.out.println("Your total score is " + total);
}
}
GolfGameTest.java
/*
* This is the MAIN class; RUN this class to show
* that the GolfGame.java program functions correctly.
*
* NOTE: You must first debug the GolfGame.java file.
* There is no need to debug this file.
*/
public class GolfGameTest {
public static void main(String[] args)
{
System.out.println("Golf Game Calculator");
GolfGame golfGame = new GolfGame();
golfGame.getTotalScore();
}
}
答案 0 :(得分:4)
public void getTotalScore() {
int score = 0, total = 0;
while ( score == -1 )
/*** snip ***/
永远不会输入while循环。
向正确的方向推进...审查循环控制。如果您在进入循环时遇到问题,那么下一个更加痛苦的缺陷就是“无限循环”。
编码循环时,实践是在几次迭代中精神上或纸上跟踪循环控制变量,确保:
上述排序的原因是基于未能导致缺陷的次数的百分比。
答案 1 :(得分:0)
如果我可以回到我开始编程的时候,只教一件事就是使用调试器的基础知识。
这对于学习netbeans的调试功能真的很有帮助。为了更好地解决调试问题,这可能是你能做的最重要的事情。我建议学习以下内容:
这似乎是了解NetBeans中调试的一个良好开端:
在您的示例中,您可以单步执行代码并看到您从未进入while循环。您还可以查看得分变量的值(该值为0),并查看“while(得分== -1)”中的条件不是真的。