if 语句执行 else 语句

时间:2021-06-08 15:39:09

标签: java

我正在制作一个猜数字游戏,它生成一个随机数,用户必须猜出它。我要求用户再试一次,但如果他们说是,它会给出 else 语句,如果他们说不,它会按计划工作。

<块引用>

我想提一下,猜数部分也不起作用。我的意思是,出于某种原因,不允许用户猜对数字。它没有给我任何错误,所以我不知道该怎么做。所以如果可以的话,也请帮我解决这个问题。另外,我对 Java 很陌生,所以如果有明显的解决方案,请不要取笑我。

import java.util.Random;
import java.util.Scanner;
class Main {
  public static void main(String[] args) {
      while (true){
System.out.print("Guess a number 1-10.");
Random rand = new Random();
int n = rand.nextInt(10);
Scanner numgood = new Scanner(System.in);
String a = numgood.next();
if (a.equals(n)) {
  System.out.println("Correct! Wanna do another round? (yes/no)\n"); 
  Scanner round  = new Scanner(System.in);
  String r = round.next();
  if (r.equals("yes")) {
    System.out.print("\033[H\033[2J");  
  System.out.flush();  
  }
  if (r.equals("no")) {
    System.out.println("Thanks for playing! Bye!");
    System.exit(0);
    numgood.close();
  }
  else {
    System.out.println("Answer with a correct statement");
    round.close();
  }
}
else {
  System.out.println("Incorrect! Wanna do another round?\n");
    Scanner round2  = new Scanner(System.in);
    String e = round2.next();
  if (e.equals("yes")) {
    System.out.flush();
  }
  if (e.equals("no")) {
    System.out.flush();
    System.out.println("Thanks for playing! Bye!");
    System.exit(0);
  }
  else {
    System.out.println("Answer with a correct statement");
    round2.close();
  }
}
}
}
}

1 个答案:

答案 0 :(得分:0)

equals 方法首先检查给定的参数是否与对象的类型相同,然后调用此方法。

您将变量 n 声明为 int,将变量 a 声明为 Stringequals 中实现的 String 方法返回 { {1}} 因为 false 属于 n 类型。


<块引用>

在这种情况下,我该如何解决? ——萨米奥斯曼21

在您的级别,您也应该将 String 更改为键入 a,并使用 int 运算符将其与 n 进行比较。当然,您还必须将 == 更改为 a = numgood.next();