繁体   English   中英

猜测随机数游戏错误

[英]Guessing random number game error

在“是我的代码”下面,我无法弄清楚,我怎样才能使用户仅进行4次尝试,然后说您输了,再试一次? 为什么不能这项工作? 我在for循环中做错了什么? 还是我应该使用另一个循环

public class JavaApplication11 {

    /**
     * @param args the command line arguments
     * @throws java.io.IOException
     */
    public static void main(String[] args) throws IOException {
        int random = (int )(Math.random() * 10 + 1);
        //  System.out.println("Random Number Is:"+random);
        double userinput = 0;
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        System.out.println("-------------------------------------------------");
        System.out.println("Welcome To The Guessing Game!");
        System.out.println("-------------------------------------------------");
        System.out.println("Lets Start,Guess The Number:");
        System.out.println("-------------------------------------------------");
        userinput=Integer.parseInt(br.readLine());

        for(int i=random;i<=4;i++)
        {
            if(userinput==random)
            {
                System.out.println("-----------------------------------------");
                System.out.println("You Won!");
                System.out.println("-----------------------------------------");
            }
            else {
                System.out.println("--------------------------------------------");
                System.out.println("Wrong Guess,Try Again! Good Luck^_^");
                System.out.println("--------------------------------------------");
            }
            System.out.println("Created By XYZ!");

        }
    }

}

for(int i=random;i<=4;i++)看起来很可疑:没有理由将i初始化为计算机选择的随机数。

我认为您的意思for (int i = 1; i <= 4; i++)

你需要放

 userinput=Integer.parseInt(br.readLine());

如果不成功,则进入您的for循环。

else {
   userinput=Integer.parseInt(br.readLine());
   ....
}

而且foor循环应该是

for(int i=0; i < 4; i++)

您的程序中存在几个错误:
1.您不能保证用户输入合法的号码。 因此,U应该判断br.readLine()是否为整数。 代码是:
str = br.readLine(); while(!str.matches("[0-9]+")) { System.out.println("Input Format Error!! Please Re. input:"); str = br.readLine(); } userinput = Integer.parseInt(str);

2.如果您只想尝试4次,则for循环应编码如下:
for(i = 1 ; i <= 4 ; i++)

3.在for循环中,您应该具有Re的接口。 答案错误时输入。
str = br.readLine(); while(!str.matches("[0-9]+")) { System.out.println("Input Format Error!! Please Re. input:"); str = br.readLine(); } userinput = Integer.parseInt(str);

4.如果您想多次循环执行此过程,则应将所有代码放入while(true){...}循环中。

您必须查看“随机”变量! 您像这样初始化它: int random = (int )(Math.random() * 10 + 1); 有时是> 4,这就是在For迭代器上引起的问题

这是我的建议:1.在每次尝试中读取用户输入。(循环中带BufferedReader)2.如果用户获胜,则打破循环。 3,循环应该只运行4次, for (int i = 1; i <= 4; i++)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM