一个简单的java猜数字游戏程序!
mip版 关注:116 答案:4 悬赏:60
解决时间 2021-01-28 09:21
已解决
2021-01-27 14:47
哪里有问题??多谢修改指出!!
//GuessNumber.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Random;
import java.lang.*;
import java.lang.System;
public class GuessNumber {
public static void main(String args[]){
Random random=new Random();
int randomNumber=random.nextInt(101);
int guessedNumber=-1;
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
int counter=0;
System.out.println("");
System.out.println("请输入0到100之间的整数:");
while(guessedNumber!=randomNumber){
guessedNumber=Integer.parseInt(input.readLine());
if(guessedNumber<0||guessedNumber>100){
System.out.println("请输入一个1~100之间的整数:");
counter++;
continue;
}
}catch(NumberFormatException e){
System.out.println("请输入一个1~100之间的整数:");
counter++;
continue;
}catch(IOException e){
System.out.println("程序发生异常错误将被关闭!");
e.printStackTrace();
}
if(guessedNumber>randomNumber)
System.out.println("你输入的数字大了,请再次输入:");
if(guessedNumber
System.out.println("你输入的数字小了,请再次输入:");
counter++;
}
//System.out.println("答案正确!你一共猜测了"+counter+"次。");
}
原题上修改,不用拿别处的来!!
最佳答案
2021-01-27 15:37
1:编译有错.不知道只有没有贴完整的代码(光有catch 没有try的吗?)
2: 个人建议 修改后的代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Random;
import java.lang.*;
public class GuessNumber {
public static void main(String args[]) {
Random random = new Random();
int randomNumber = random.nextInt(101);
int guessedNumber = -1;
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
int counter = 0;
System.out.println("");
System.out.println("请输入0到100之间的整数:");
while (true) {
try {
guessedNumber = Integer.parseInt(input.readLine());
if (guessedNumber > randomNumber) {
System.out.println("你输入的数字大了,请再次输入:");
counter++;
}
if (guessedNumber < randomNumber) {
System.out.println("你输入的数字小了,请再次输入:");
counter++;
}
if (guessedNumber == randomNumber) {
System.out.println("答案正确!你一共猜测了"+counter+"次。");
break;
}
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if (guessedNumber < 0 || guessedNumber > 100) {
System.out.println("请输入一个1~100之间的整数:");
counter++;
continue;
}
}
}
}
另: 对异常输入没有做判断,可以在捕获 NumberFormatException 异常时不将异常抛出,而提示 "输入数字"之类的信息
全部回答
1楼
2021-01-27 19:46
public class Test {
public static void main(String args[]) {
Random random = new Random();
int randomNumber = random.nextInt(101);
int guessedNumber = -1;
BufferedReader input = new BufferedReader(new InputStreamReader(
System.in));
int counter = 1;
System.out.println("");
System.out.println("请输入0到100之间的整数:");
while (guessedNumber != randomNumber) {
try {
guessedNumber = Integer.parseInt(input.readLine());
} catch (NumberFormatException e) {
System.out.println("请输入一个1~100之间的整数:");
counter++;
continue;
} catch (IOException e) {
System.out.println("程序发生异常错误将被关闭!");
e.printStackTrace();
}
if (guessedNumber < 0 || guessedNumber > 100) {
System.out.println("请输入一个1~100之间的整数:");
counter++;
continue;
}
if (guessedNumber > randomNumber) {
System.out.println("你输入的数字大了,请再次输入:");
counter++;
}
if (guessedNumber < randomNumber) {
System.out.println("你输入的数字小了,请再次输入:");
counter++;
} else if (guessedNumber == randomNumber)
System.out.println("答案正确!你一共猜测了" + counter + "次。");
}
}
}
2楼
2021-01-27 18:33
可以在捕获异常中写入{System.out.println(getmessage());}
3楼
2021-01-27 17:09
package test;
import java.util.scanner;
public class test {
public static void main(string[] args) {
int b = (int) (math.random()*10+1);
scanner input=new scanner(system.in);
system.out.println("请输入1个10以内的数字:");
int a = input.nextint();
int i=1;
while( a != b && i<10)
{
system.out.println(a>b?"大了":"小了");
system.out.println("请输入1个10以内的数字:");
a = input.nextint();
i++;
}
string s = "";
if(i<2)
{
s="你猜对了,你是牛人";
}else if(i<5)
{
s="你猜对了,你的成绩不错";
}else s="10次都猜不中你是脑残";
system.out.println("结果是:"+b+"你猜的次数为:"+i+","+s);
}
}
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上信息!
推荐资讯
大家都在看