-1

我迷路了。在我的 Java 1 类中,我应该调试这个简单的代码并修复它。这是一个简单的高尔夫游戏。我知道这个问题基本上是在问你们也做我的功课,但我希望得到帮助,以便在未来的调试任务中朝着正确的方向前进。

高尔夫游戏.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();
    }
}
4

2 回答 2

4
public void getTotalScore() {
int score = 0, total = 0;
    while ( score == -1 )
    /*** snip ***/

永远不会进入while循环。

朝着正确的方向推进……查看循环控制。如果您在进入循环时遇到问题,那么下一个更痛苦的缺陷就在不远处,即“无限循环”。

在编写循环代码时,实践是在心理上或在纸上多次迭代跟踪循环控制变量,以确保:

  1. 在应该进入的时候进入循环
  2. 应该退出循环
  3. 循环控制变量应随迭代而变化

上述排序的原因是基于不这样做导致缺陷的次数百分比。

于 2013-09-15T19:44:09.453 回答
0

如果我可以回到我开始编程的时候,只教自己一件事,那就是使用调试器的基础知识。

它将真正帮助您学习 netbeans 的调试功能。为了更好地解决调试问题,这可能是您可以做的最重要的事情。我建议学习以下内容开始:

  1. Step In/Step Out/Step Over - 学习如何慢慢地逐行执行代码
  2. 断点 - 学习如何在特定点停止程序,以便查看程序是否到达某一行,以及该行的变量值是什么。
  3. 观察变量 - 在调试时查看变量的值。
  4. 谷歌搜索 - 我刚刚用谷歌搜索“在 Netbeans 中调试”并想出了以下内容。但有时很难知道用谷歌搜索什么:)

这看起来是了解 NetBeans 中调试的良好开端:

http://www.cs.uga.edu/~shoulami/sp2009/cs1301/tutorial/NetBeansDebuggerTutorial/NetBeansDebuggerTutorial.htm

在您的示例中,您可以单步执行代码并看到您从未将其放入 while 循环中。您还可以查看 score 变量的值(将是 0)并看到“while ( score == -1 )”中的条件不正确。

于 2013-09-16T11:00:15.287 回答