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");
 }
}