Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Anjelo Manoranjan Ученик (95), на голосовании 1 год назад
Не могу понять, что он от меня хочет?
Голосование за лучший ответ
Андрей Панарин Искусственный Интеллект (249316) 1 год назад
1) Компилятор не знает, что это за переменная rand и какого она типа.
Похоже, вы ее не объявили.

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

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

Исправьте, например, так:
 return switch (result) {
case 1 -> Figure.SCISSORS;
case 2 -> Figure.PAPER;
case 3 -> Figure.STONE;
default -> Figure.STONE;
}
И задайте выше значение переменной result, иначе свич не имеет смысла, так как проверяет непонятно что.

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


У меня же все как здесь, но почему-то у меня выдает ошибки, а здесь нет...
Андрей Панарин Искусственный Интеллект (249316) А программа компилируется?
Похожие вопросы