Java 猜数字
我想创建一个程序,让你三次尝试找到任何给定的数字。这本质上是一场猜谜游戏。问题是,我必须在没有任何循环的情况下完成这项工作。到目前为止,我只能从用户那里获得输入,阅读输入并告诉他们是否赢了或“输了”游戏。程序只运行一次,并按预期停止 有人告诉我,它可以在没有循环的情况下完成,尽管需要更多的代码。你们能让我知道我做错了什么,并给我一些我应该改变的建议吗?如果你需要澄清,请告诉我。 谢谢Java 猜数字,java,if-statement,Java,If Statement,我想创建一个程序,让你三次尝试找到任何给定的数字。这本质上是一场猜谜游戏。问题是,我必须在没有任何循环的情况下完成这项工作。到目前为止,我只能从用户那里获得输入,阅读输入并告诉他们是否赢了或“输了”游戏。程序只运行一次,并按预期停止 有人告诉我,它可以在没有循环的情况下完成,尽管需要更多的代码。你们能让我知道我做错了什么,并给我一些我应该改变的建议吗?如果你需要澄清,请告诉我。 谢谢 您可以使用递归来实现这一点。看这个节目。在评论中找到解释 import java.util.Scanner;
您可以使用递归来实现这一点。看这个节目。在评论中找到解释
import java.util.Scanner;
public class HelloWorld {
private static Scanner ran = new Scanner(System.in);
//this is number of tries you want to give to user
private static int counter = 5;
//The actual number
private static final int NUM = 3;
public static boolean guessingMachine() {
//counter indicates that number of attempts remaining
if(counter == 0) {
return false;
}
counter--;
System.out.println("Enter a number: ");
int x = ran.nextInt();
if (x < NUM) {
System.out.println("Too low. Try again.");
//try again... call this method again
return guessingMachine();
} else if (x > NUM) {
System.out.println("Too high. Try again");
//try again... call this method again
return guessingMachine();
} else {
//x == NUM success
return true;
}
}
public static void main(String[] args) {
boolean result = guessingMachine();
if(result)
System.out.println("You win. Nice job.");
else
System.out.println("You lose");
System.out.println("Number Guessing Game (c) 2017 Anna Gibson");
}
}
您可以在下列条件下:
get user input
if input is correct, congratulation user and exit
else
get user input //second attempt
if input is correct, congratulation user and exit
...
你可以从那里继续。您提供的代码(告诉用户它们是否过高或过低)必须包含在上述伪代码的每个分支中。我认为本练习的主要目的是加强嵌套的if-else概念
import java.util.Scanner;
公共类HelloWorld{
public static void main(String []args){
int num=3;
int count=1;
Scanner ran = new Scanner(System.in);
System.out.println("Enter a number: ");
int x = ran.nextInt();
if(x>num || x<num)
{
System.out.println("incorrect guess");
count++;
System.out.println("Enter a number: ");
x = ran.nextInt();
if(x>num || x<num)
{
System.out.println("incorrect guess");
count++;
System.out.println("Enter a number: ");
x = ran.nextInt();
if(x>num || x<num)
{
System.out.println("incorrect guess YOU LOSE");
}
else
{
System.out.println("YOU WIN");
}
}
else
{
System.out.println("YOU WIN");
}
}
if(x==num && count==1)
{
System.out.println("YOU WIN");
}
System.out.println("Number Guessing Game (c) 2017 Anna Gibson");
}
}
您可以使用递归,也可以将猜测代码放在自己的代码中 静态方法,并连续调用三次。虽然我真的怀疑不使用循环在任何方面都是有益的……用户猜测的数字是如何选择的?我本来打算自己设置数字,因此x==3,但我感觉我做得不对。
public static void main(String []args){
int num=3;
int count=1;
Scanner ran = new Scanner(System.in);
System.out.println("Enter a number: ");
int x = ran.nextInt();
if(x>num || x<num)
{
System.out.println("incorrect guess");
count++;
System.out.println("Enter a number: ");
x = ran.nextInt();
if(x>num || x<num)
{
System.out.println("incorrect guess");
count++;
System.out.println("Enter a number: ");
x = ran.nextInt();
if(x>num || x<num)
{
System.out.println("incorrect guess YOU LOSE");
}
else
{
System.out.println("YOU WIN");
}
}
else
{
System.out.println("YOU WIN");
}
}
if(x==num && count==1)
{
System.out.println("YOU WIN");
}
System.out.println("Number Guessing Game (c) 2017 Anna Gibson");
}
}