Top.Mail.Ru
Ответы

Подскажите пожалуйста что нужно исправить в этой ошибки компиляции?

Не могу понять, что он от меня хочет?

По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект

1) Компилятор не знает, что это за переменная rand и какого она типа.
Похоже, вы ее не объявили.

2) Компилятор не знает, что это за переменные f1 и f2 и каких они типов.
Похоже, вы их тоже не объявили.

3) В свич вы подаете строку "result" и ожидаете, что она будет равна какому-то числу. Фигушки, не будет: строка и число — это данные разных типов. В свиче нет кейса default, срабатывающего при несовпадении остальных кейсов, поэтому непонятно, что должно быть возвращено в таких случаях.

Исправьте, например, так:

123456
 return switch (result) {
    case 1 -> Figure.SCISSORS;
    case 2 -> Figure.PAPER;
    case 3 -> Figure.STONE;
    default -> Figure.STONE;
} 

И задайте выше значение переменной result, иначе свич не имеет смысла, так как проверяет непонятно что.

4) Тут среда жалуется на отсутствие скобок вокруг простых сравнений. Есть некие стандарты, которые предписывают ставить скобки для ясности, но это не обязательно. В принципе ничего менять не нужно, если компилятор не жалуется на реальные ошибки.