Это моя вторая неделя в курсе Java, так что несите меня. Я пытаюсь сделать программу, которая позволяет пользователю вводить «рок», «бумагу» или «ножницы». Я уверен, что есть более эффективные способы, чем то, что я сделал, и я думал, что я действительно добиваюсь прогресса, но теперь я застрял.java.lang.String не может быть преобразован в int ... не уверен, что я делаю неправильно
Мое применимое знание этой программы ограничено операторами if и else, а также операторами switch. Я попытался получить пользовательский ввод для скалы, бумаги или ножниц, преобразовать их в число и сравнить их с произвольно сгенерированным числом, причем 0 представляет собой камень, 1 представляет собой бумагу, а 2 представляют собой ножницы.
import java.util.*;
public class RockPaperScissors
{
public static void main(String[] args) {
int computer;
computer = (int)(Math.random() * 2 + 1);
Scanner input = new Scanner(System.in);
String player;
System.out.println("Enter the word rock, paper, or scissors.");
player = input.next();
if (computer == 0) {
System.out.println("The computer chose rock.");
}
else if (computer == 1) {
System.out.println("The compuer chose paper.");
}
else if (computer == 2) {
System.out.println("The computer chose scissors.");
}
// personally starting from here is where I feel like I started to make mistakes.
int rock = 0;
int paper = 1;
int scissors = 2;
player = (int)player;
switch (player) {
case "r" : rock = 0;
player = 0;
break;
case 'p' : paper = 1;
player = 1;
break;
case 's' : scissors = 2;
player = 2;
break;
default : System.out.println("Invalid input");
}
if (player == computer) {
System.out.println("You tied") ;
}
else if (player = 1 && computer = 0^player = 2 && computer = 0) {
System.out.println("You won");
}
else {
System.out.println("You lost");
}
}
}
Почему вы бросаете строку в целое число ?! 'player' - это строка! – Li357
@AndrewLi, он усложняет это lol. он мог бы просто использовать целое число для вычисления и вернуть его как строку в случай – FreedomPride
Вы не понимаете фундаментальной идеи. Вы не можете хранить строки (ссылочный тип) и ints (примитив) в одной и той же переменной! Java строго типизирован, что означает, что 'player' не может хранить строку и целое число! Также двойные кавычки для строк и одинарные кавычки для символов! – Li357