将循环中的扫描仪值初始化为数组
initializing scanner values in a loop to an array
我创建了一个游戏,用户可以在其中猜测创建的随机数 0-100。如果他们的猜测太高,系统会告诉他们猜得更高,如果他们的猜测低于实际数字,系统也会告诉他们。但是,我需要按照输入的顺序将每个猜测初始化为一个数组。我知道如何初始化数组,但我需要帮助将玩家的猜测存储到数组中。这是我的代码,感谢任何 help/advice!
public static void randomNumGame(){
// begin of method
Scanner numbers = new Scanner(System.in);
Random randomGenerator = new Random();
int[] guess;
guess = new int[6];
guess[0]=0;
guess[1]=0;
guess[2]=0;
guess[3]=0;
guess[4]=0;
guess[5]=0;
System.out.println("running ...");
int thisRandomInt = randomGenerator.nextInt(100);
int attempt = 0;
boolean done = false;
while(!done){
System.out.print("Guess a number from 0 to 100 : ");
int myGuess = numbers.nextInt();
attempt++;
if(myGuess == thisRandomInt && attempt <= guess.length){
done = true;
System.out.println("You won. It took " + attempt+ " times to guess my number.");
}else if (attempt >= guess.length){
System.out.println("Game Over. My number is "+thisRandomInt );
done = true;
}else if (myGuess < thisRandomInt){
System.out.println("Guess a higher number");
}else{
System.out.println("Guess a lower number");
}
}
}// end of method
if(myGuess == thisRandomInt && attempt <= guess.length){
done = true;
System.out.println("You won. It took " + attempt+ " times to guess my number.");
}else if (attempt >= guess.length){
System.out.println("Game Over. My number is "+thisRandomInt );
done = true;
}else if (myGuess < thisRandomInt){
guess[attempt-1] = myGuess;
System.out.println("Guess a higher number");
}else{
guess[attempt-1] = myGuess;
System.out.println("Guess a lower number");
}
您不需要明确地用零初始化您的任务数组。除此之外,您还可以这样做:
System.out.print("Guess a number from 0 to 100 : ");
int myGuess = numbers.nextInt();
guess[attempt++] = myGuess;
此外,您可以调用 break
而不是声明 true
标志,而不是 done
标志 - 它会跳出循环。
我创建了一个游戏,用户可以在其中猜测创建的随机数 0-100。如果他们的猜测太高,系统会告诉他们猜得更高,如果他们的猜测低于实际数字,系统也会告诉他们。但是,我需要按照输入的顺序将每个猜测初始化为一个数组。我知道如何初始化数组,但我需要帮助将玩家的猜测存储到数组中。这是我的代码,感谢任何 help/advice!
public static void randomNumGame(){
// begin of method
Scanner numbers = new Scanner(System.in);
Random randomGenerator = new Random();
int[] guess;
guess = new int[6];
guess[0]=0;
guess[1]=0;
guess[2]=0;
guess[3]=0;
guess[4]=0;
guess[5]=0;
System.out.println("running ...");
int thisRandomInt = randomGenerator.nextInt(100);
int attempt = 0;
boolean done = false;
while(!done){
System.out.print("Guess a number from 0 to 100 : ");
int myGuess = numbers.nextInt();
attempt++;
if(myGuess == thisRandomInt && attempt <= guess.length){
done = true;
System.out.println("You won. It took " + attempt+ " times to guess my number.");
}else if (attempt >= guess.length){
System.out.println("Game Over. My number is "+thisRandomInt );
done = true;
}else if (myGuess < thisRandomInt){
System.out.println("Guess a higher number");
}else{
System.out.println("Guess a lower number");
}
}
}// end of method
if(myGuess == thisRandomInt && attempt <= guess.length){
done = true;
System.out.println("You won. It took " + attempt+ " times to guess my number.");
}else if (attempt >= guess.length){
System.out.println("Game Over. My number is "+thisRandomInt );
done = true;
}else if (myGuess < thisRandomInt){
guess[attempt-1] = myGuess;
System.out.println("Guess a higher number");
}else{
guess[attempt-1] = myGuess;
System.out.println("Guess a lower number");
}
您不需要明确地用零初始化您的任务数组。除此之外,您还可以这样做:
System.out.print("Guess a number from 0 to 100 : ");
int myGuess = numbers.nextInt();
guess[attempt++] = myGuess;
此外,您可以调用 break
而不是声明 true
标志,而不是 done
标志 - 它会跳出循环。