0

我编写了我的代码并且它完全可以工作,但是我没有编写我自己的方法。作业的重点是练习使用子程序,这就是我必须使用的。我读到了关于制作自己的方法的文章——很多。但我仍然无法围绕它。

这是我的一段代码。你能帮我解释一下我如何用它制作自己的方法并调用它吗?

public static void main(String[] args) {
    //Display welcome message 
    System.out.println("Welcome to the Math Functions event!");
    Scanner keyIn = new Scanner(System.in);
    Scanner userInput;
    System.out.print("Press the ENTER key to toss the dice.");
    keyIn.nextLine();

    //roll dice
    Random rand = new Random();
    int tries = 0;

    int sum = 0;
    while (sum != 7 && sum != 11) {
    // roll the dice once
    int roll1 = rand.nextInt(6) + 1;
    int roll2 = rand.nextInt(6) + 1;
    sum = roll1 + roll2;
    System.out.println(roll1 + " + " + roll2 + " = " + sum);
    tries++;
    }
}

任何帮助将不胜感激!谢谢!

4

1 回答 1

1

这是一个给你随机掷骰子的方法的例子:

public static int rollDice()
{
    Random rand = new Random();
    int roll = rand.nextInt(6) + 1;
    return roll;
}

你会这样调用函数:

int roll = rollDice();

因此,它可以像这样集成到您的程序中,例如:

public static void main(String[] args) {
    //Display welcome message 
    System.out.println("Welcome to the Math Functions event!");
    Scanner keyIn = new Scanner(System.in);
    Scanner userInput;
    System.out.print("Press the ENTER key to toss the dice.");
    keyIn.nextLine();


    int tries = 0;

    int sum = 0;
    while (sum != 7 && sum != 11) {
    // Here is where you call your newly created method
    int roll1 = rollDice();
    int roll2 = rollDice();
    sum = roll1 + roll2;
    System.out.println(roll1 + " + " + roll2 + " = " + sum);
    tries++;
    }
}

这个想法是你想把一个复杂的任务分成许多更小的任务。这样,调试起来就容易多了。以上只是一个示例,但如果您正在执行您意识到重复的操作,那么函数永远不会受到伤害。

尝试以下列方式考虑您的功能:

1. 我的函数是做什么的?

2. 它应该为我提供什么数据?

3. 我的功能至少需要多少才能向我提供这些数据?

至于评论中提到的计算字符串字符的函数:

  1. 您的函数计算字符串中的字符。
  2. 它为您提供的数据只是一个数字。
  3. 获取此数字所需的只是一个字符串。

鉴于这些信息,我们可以提出以下功能协议:

public static int countCharacters(String myString)
{
    int count = myString.length();
    return count;
}

返回类型和值是一个int,因为这是它需要为您提供的,并且myString是函数需要工作的唯一数据。以这种方式思考会使代码更易于维护,并且您将能够将复杂的任务分解为几个非常简单的步骤。

于 2013-08-18T11:58:20.060 回答