试图解决有关高尔夫球手使用的语的高尔夫语作业

时间:2018-07-06 17:26:29

标签: java java.util.scanner

所以我有一个即将完成的家庭作业,我已尽力而为,我知道我有一些错误,但我不知道该如何解决。

您将编写一个程序,该程序将接受用户的三项输入:

孔号, 孔的面值和 高尔夫球手完成击球所需的击球次数。

然后您将使用下表为孔生成适当的高尔夫球手语:

高尔夫球手的中风与标准杆的关系:

-5, "Ostrich"

-4, "Condor"

-3, "Albatross"

-2, "Eagle"

-1, "Birdie"

0, "Even Par" or "Even" or "Par"

+1, "Bogey"

+2, "Double Bogey"

+3, "Triple Bogey"

+4, "4 over par"

+5, "5 over par", etc.

一个投出两倍于标准杆值的人有

X2, (double the par), "Beagle"

高尔夫球手的实际笔画数:

1, "Hole in One" or "Ace"

4, "Sailboat"

8, "Snowman", "Frosty" or "Dog Balls"

10, "Bo Derek"

然后它应该像这样显示

  
    

>     输入孔号:1     输入孔的标准杆:4     输入笔划数:4     在1号洞的标准杆4杆上,您用帆船射击了标准杆。     >

  

我的程序就是这样的。

import java.util.Scanner;

public class GolfSlang {

    public static void main(String[] args) {
    // TODO Auto-generated method stub

    Scanner input = new Scanner(System.in);
    int numbers = 0;
    int parhole = 0;
    int strokes = 0;

    System.out.println("Enter the hole number: ");
    double number = input.nextDouble();

    System.out.print("the par value for a hole: ");
    double par = input.nextDouble();

    System.out.print("The number of strokes the golfer took to complete the hole:");
    double stroke = input.nextDouble();

    if (par == -5) {
        System.out.println(" Ostrich ");
    } else if (par == -4) {
        System.out.println("Condor");
    } else if (par == -3) {
        System.out.println("Albatross");
    } else if (par == -2) {
        System.out.println("Eagle");
    } else if (par == -1) {
        System.out.println("Birdie");
    } else if (par == 0)  {
        System.out.println("Even Par");
    } else if (par == 1) {
        System.out.println("Bogey");
    } else if (par == 2) {
        System.out.println("Double Bogey");
    } else if (par == 3) {
        System.out.println("Triple Bogey");
    } else if (par == 4) {
        System.out.println("4 over par");
    } else if (par == 5) {
        System.out.println("5 over par");
    } else {

    }

    if ((stroke /2)== par) {
        System.out.println("Beagle");
    } else if (stroke == 1) {
        System.out.println("Ace");
    } else if (stroke == 4) {
        System.out.println("Sailboat");
    } else if (stroke == 8) {
        System.out.println("Snowman");
    } else if (stroke == 10) {
        System.out.println("Bo Derek");
    }

    } else {
        System.out.println("On hole # " + numbers + " a par " + par + "you shot" + stroke); {
}
}

1 个答案:

答案 0 :(得分:0)

第一个if(){} else(){}部分对于您想要的内容毫无用处。您保留存储的面值和笔划值。您需要检查笔划的​​差异以达到标准{int val = stoke-par;}。比较的第一部分应使用val而不是par。 (推荐开关箱,因为它只是一长串基本比较的清单)。由于要在末尾打印所有内容,因此应保存字符串,而不要使用println(在比较之前初始化)。您可以使用printf(“ whatever%s”,string)为打印进行更简单的集成