猜猜随机数游戏错误

时间:2014-05-27 08:49:03

标签: java

下面是我的代码,我不知道,我怎么能让用户只有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!");

        }
    }

}

5 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

你需要把

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

如果不成功,请进入你的for循环。

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

也应该是

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

答案 2 :(得分:1)

您的计划中有多处错误:
 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循环应编码如下:
str = br.readLine();

3.在for循环中,你应该有Re的接口。答案错误时输入 while(!str.matches("[0-9]+")) {

4.如果您想多次循环此过程,则应将所有代码放在System.out.println("Input Format Error!! Please Re. input:");循环中。

答案 3 :(得分:0)

你必须看“随机”变量!! 你初始化它像: int random = (int )(Math.random() * 10 + 1); 有时它是> 4,这是For iterator

引起的问题

答案 4 :(得分:0)

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