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