我试图创建一个程序,其中用户认为1到10之间的数字,并且计算机反复尝试通过猜测随机数来猜测它。 (可以多次猜出相同的数字)在游戏结束时,程序会报告它做了多少次猜测。例如:
我写了以下代码:
import java.util.*;
public class Pick {
public static void main(String[] args){
System.out.println("This program has you, the user, choose a number");
System.out.println("between 1 and 10. Then, I, the computer, will try");
System.out.println("my best to guess it.");
Scanner console = new Scanner(System.in);
Random r = new Random();
int result = -1;
int count = 0;
for (i = 1; i <= number; i++){
while(result != number){
result = r.nextInt(10) + 1;
System.out.println("Is it " + r + "? (y/n)");
String yn = console.next();
if(String yn = "y"){
System.out.println("I got your number of " + result + " in " + i + " guesses.");
} else if (String yn = "n") {
count++;
} else {
System.out.println("I got your number of " + result + " in " + i + " guesses.");
}
}
System.out.println();
}
}
我很困惑为什么我的程序不起作用?它不会编译并且有7个错误。我想我在if / else语句中出错了。我应该使用while循环吗? 感谢。
文字编译错误:
Pick.java:20: error: ')' expected
if(String yn = "y"){
^
Pick.java:20: error: ';' expected
if(String yn = "y"){
^
Pick.java:22: error: ')' expected
} else if (String yn = "n") {
^
Pick.java:22: error: ';' expected
} else if (String yn = "n") {
^
Pick.java:22: error: 'else' without 'if'
} else if (String yn = "n") {
^
Pick.java:25: error: 'else' without 'if'
} else {
^
Pick.java:31: error: reached end of file while parsing
}
^
7 errors
答案 0 :(得分:1)
您正尝试在number
使用变量for (i = 1; i <= number; i++){
,但它并不存在。您需要初始化数字。
答案 1 :(得分:1)
首先,
if(String yn = "y") {
}
不是你认为的Java。 String yn = "y"
是一个赋值语句,而不是一个比较。
要比较Java中的字符串,请使用String's equals() method
。
还有更多语法问题和明显的编译错误。我建议你尝试在线开始Java的许多教程之一。
答案 2 :(得分:1)
String yn = console.next();
if(String yn = "y"){
yn
两次。这是不允许的。只需使用yn
,无需再次表示String
,您已经这样做了。您正在使用分配运算符=
而不是比较运算符==
。在任何情况下,Java中的字符串都不是使用==
进行比较,而是使用equals
方法if(yn.equals("y"))
for (i = 1; i <= number; i++)
我没有看到相应的错误消息,但仍未在任何地方声明number
。