#java
#java
Вопрос:
import java.util.Scanner;
public class KekOrCringe {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String userGuess = "";
boolean Continue = true;
boolean ProperResponse = true;
boolean IsCorrect = true;
boolean YesNo = true;
while (Continue)
{
int secretAnswer = (int)(Math.random() * 2 1);
kekOrCringe(secretAnswer);
while (!IsCorrect)
{
System.out.println("Kek or Cringe?");
ProperResponse = false;
while (!ProperResponse) {
userGuess = scan.nextLine();
if (userGuess != "Kek")
System.out.println("Your entry is invalid, please try again!");
else if (userGuess != "Cringe")
System.out.println("Your entry is invalid, please try again!");
else
ProperResponse = true;
}
for (int guessCount = 0; guessCount < 1; guessCount ) {
if (userGuess = "Cringe" amp;amp; userGuess != secretAnswer) {
System.out.println("It's KeK!");
guessCount ; }
else if (userGuess = "Kek" amp;amp; userGuess != secretAnswer) {
System.out.println("It's CrInGe!");
guessCount ; }
else
System.out.println("Mr. Morgan, you got it right my boy!");
IsCorrect = true;
}
}
}
YesNo = false;
while(!YesNo) {
System.out.println("Would you like to play again? Yes/No");
String answer = scan.nextLine();
if (answer.equals("No")) {
Continue = false;
YesNo = true;
System.out.println("Fine. You were Cringe anyway!");
}
else if (answer.equals("Yes")) {
YesNo = true;
Continue = true;
IsCorrect = false;
}
}
}
public static String kekOrCringe(int secretAnswer) {
if (secretAnswer = 1) { return "Kek";}
if (secretAnswer = 2) { return "Cringe";}
}
}
Возможно, это слишком сложный способ сделать что-то ненужное, но это мой первый год обучения программированию в колледже, и меня попросили попробовать. Я думаю, что это забавно, и, вероятно, будет еще смешнее, если это сработает, а также будет хорошей практикой. У меня возникли проблемы с преобразованием int secretAnswer в возвращаемую строку, а затем сравнением пользовательского запроса с возвращаемым типом. Получение ошибок компиляции в строках 32 и 35. Любые советы будут оценены.
PS Я понимаю, что это глупо. Пытаюсь использовать этот глупый код как возможность обучения.
Комментарии:
1. В чем ошибка компиляции?
2. Несовместимые типы операндов, String и int. Строка 32. Цель состояла в том, чтобы вызвать метод KekorCringe, используя значение secretAnswer , а затем, когда KekorCringe задаст возвращаемый тип, он повторно объявит значение secretAnswer . Это просто не сработало таким образом. Не уверен, как это изменить.
3. С кодом связано несколько проблем. Что вы пытаетесь здесь сделать?
4. Это просто программа RNG, которая генерирует два возможных ответа. «Кек» или «Съежиться». У пользователя есть одно предположение, чтобы сделать это правильно.
5. Даже если вы решите две проблемы с компиляцией, есть несколько логических проблем с кодом. Я бы посоветовал вам, пожалуйста, перейти к вашему коду построчно, используя отладчик. И понять, что происходит.
Ответ №1:
Я предполагаю, что строки 32 и 35 — это два ifs. userGuess != secretAnswer не работает, поскольку один представляет собой строку, а другой — целое число. Ваш статический метод kekOrCringe(secretAnswer); возвращает нужную вам строку, вам просто нужно сохранить ее в переменной, а затем сравнить с пользовательскими данными.
Также, пожалуйста, используйте имена переменных в нижнем регистре.
Комментарии:
1. Даже для логических значений?
2. Да, каждая переменная должна быть названа в нижнем регистре camel. Константы, объявленные со статическим финалом, должны быть в верхнем регистре: cs.cornell.edu/courses/JavaAndDS/JavaStyle.html#Naming
Ответ №2:
Я не могу добавить комментарий, поэтому пишу здесь.
userGuess — это строка, но secretAnswer — это int , и вы пытаетесь проверить, равны ли они ( userGuess != secretAnswer
) .
Вы можете использовать новую переменную like secretGuess
, присвоить kekOrCringe(secretAnswer)
secretGuess
и проверить userGuess
, равно ли secretGuess
она .
Вот так:
String secretGuess = kekOrCringe(secretAnswer);
if (userGuess != secretGuess) {
//...
}
Ответ №3:
Вы пытаетесь сравнить int со строкой, что неверно
userGuess != secretAnswer
Кроме того, вместо сравнения вы присваиваете значения внутри условия if.
if (secretAnswer = 1) { return "Kek";}
if (secretAnswer = 2) { return "Cringe";}
Это должно быть:
if (secretAnswer == 1) { return "Kek";}
if (secretAnswer == 2) { return "Cringe";}