[英]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.