Использование оператора switch для сценария гольфа

#java #methods #switch-statement

#java #методы #switch-statement

Вопрос:

Новичок здесь пытается вернуть метод комментариев:

 public static String comment(int score, int parForHole) {
    if (parForHole - score > 4)
        return "condor!!!!";
    if (parForHole - score == 3)
        return "albatross!!!";
    if (parForHole - score == 2)
        return "eagle!!";
    if (parForHole - score == 1)
        return "birdie!";
    if (parForHole - score == 0)
        return "par";
    if (parForHole - score == -1)
        return "bogey";
    if (parForHole - score == -2)
        return "double bogey";
    if (parForHole - score < -2)
        return "triple  bogey";

    return "asdasd"; // Replace by a suitable switch stmt.
}
 

Есть ли аналогичный способ сделать это с помощью оператора switch? Я не слишком знаком с этим.
Любая помощь приветствуется, спасибо!

Ответ №1:

Вы можете вычислить общее количество баллов parForHole, а затем запустить результат с помощью оператора switch.

 public static String comment(int score, int parForHole) {
    int total = parForHole - score;

    switch(total) {

        case 3 :
            return "albatross!!!";


        //   ... and so on


    }

    if (total > 4)
        return "condor!!!!";
    if (total <= 3)
       return "triple  bogey!!!!";

    return "asdasd";
}
 

но для сравнений> 4 и т.д. Я думаю, вам нужно сохранить операторы if.

Комментарии:

1. перерыв после возвращения? действительно?

Ответ №2:

 public static String comment(int score, int parForHole) {
    String strig;
    switch(parForHole - score){
        case 1:
            string = "something";
            break;
        case 2:
            string = "something else";
            break;
        default:
            string = "default string";
            break;
    }
    return string;
}
 

Switch — это просто базовое переключение на случай, который вы ему даете. Если parForHole — score равен 1, он переключится на случай 1. Если parForHole — score дает неопределенное значение, switch будет использовать регистр по умолчанию.