人,我是java新手,几周前才开始。我正在尝试制作一个猜谜游戏程序,您必须猜测1到100之间的数字,并且存在问题。
代码:
import java.util.Scanner;
import java.util.Random;
public class CODE {
public static void main(String[] args) {
Random rand = new Random();
int n = rand.nextInt(100) + 1;
Scanner input = new Scanner(System.in);
System.out.println(n);
System.out.println("Lets play a guessing game! You try to guess the number I am thinking \n");
System.out.println("Guess a number between 1 to 100! ");
String inputLine = input.nextLine();
int line = Integer.parseInt(inputLine);
boolean gotIt;
gotIt = false;
while(gotIt == false) {
if (n < line) {
System.out.println("Go Lower");
String inputLine = input.nextLine();
line = Integer.parseInt(inputLine);
}
if (n > line) {
System.out.println("Go Higher");
String inputLine = input.nextLine();
line = Integer.parseInt(inputLine);
}
if (line == n) {
System.out.println("You guessed my number!!!");
gotIt = true;
break;
}
}
}
}
然后它给我一个错误说:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Duplicate local variable inputLine
Duplicate local variable inputLine
at CODE.main(CODE.java:23)
任何帮助?
答案 0 :(得分:3)
错误非常自我解释,这意味着您将变量inputLine声明两次。
使用String variableName
声明变量后,您无法再次执行此操作,只需要使用variableName
引用创建的变量,以便将内存中的引用覆盖为新值。 / p>
喜欢:
public class CODE {
public static void main(String[] args) {
Random rand = new Random();
int n = rand.nextInt(100) + 1;
Scanner input = new Scanner(System.in);
System.out.println(n);
System.out.println("Lets play a guessing game! You try to guess the number I am thinking \n");
System.out.println("Guess a number between 1 to 100! ");
String inputLine = input.nextLine();
int line = Integer.parseInt(inputLine);
boolean gotIt;
gotIt=false;
while(gotIt==false) {
if (n<line) {
System.out.println("Go Lower");
inputLine = input.nextLine();
line = Integer.parseInt(inputLine);
}
if (n>line) {
System.out.println("Go Higher");
inputLine = input.nextLine();
line = Integer.parseInt(inputLine);
}
if (line==n) {
System.out.println("You guessed my number!!!");
gotIt=true;
break;
}
}
}
答案 1 :(得分:1)
该行
String inputLine = input.nextLine();
实际上做了三件事。它
inputLine
,Scanner
的{{1}} input
。第一次使用它时非常棒。但是后来,如果你重复这一行,你实际上是在尝试创建一个与现有变量同名的新变量。
而不是重复行
inputLine
稍后,只需写下
String inputLine = input.nextLine();
将从inputLine = input.nextLine();
读取一行并将其分配给Scanner
,而不尝试创建全新的变量。