菜鸟求助java问题,

u010100286 2013-12-01 02:40:34
/* 题目:
1*.编写程序,实现如下功能:
随机分配一个1~100之间的整数(Math.random()返回一个double类的数);
用户从键盘上输入自己的猜测
程序返回提示信息,提示信息分别是“猜大了”、“猜小了”和“猜对了”。
用户可根据提示信息再次输入猜测,直到提示信息是“猜对了”。
*/



import java.util.*;

public class RandomTest{
public static void main(String[] args)throws Exception{
byte[] b=new byte[1024];
System.out.println("-请输入0到100的一个数:-");
System.in.read(b);
String str=new String(b).trim();
double num=Double.parseDouble(str);
double ran=(Math.random()*100)+1;
while(num>ran){
System.out.println("大了,请重新输入:");
Scanner in=new Scanner(System.in);
num=in.nextDouble();
if(num==ran){
System.out.println("答对了");
break;
}
}
while(num<ran){
System.out.println("小了,请重新输入:");
Scanner in=new Scanner(System.in);
num=in.nextDouble();
if(num==ran){
System.out.println("答对了");
break;
}
}
System.out.println("对了!");
}
}

想不通怎么会出错,就是本来签名在CMD中还可以,突然敲大了,居然答对了。。。每次都这样。。
...全文
167 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
anshiny 2013-12-01
  • 打赏
  • 举报
回复
public static void main(String[] args) throws Exception {
		System.out.println("-请输入0到100的一个数:-");
		Scanner in = new Scanner(System.in);
		int num = in.nextInt();
		int ran = (int) (Math.random() * 100) + 1;
		while (true) {
			if(num > ran) {
				System.out.println("大了,请重新输入:");				
				num = in.nextInt();
			} else if(num < ran) {
				System.out.println("小了,请重新输入:");				
				num = in.nextInt();
			} else {
				System.out.println("答对了");
				break;
			}
		}
anshiny 2013-12-01
  • 打赏
  • 举报
回复
public static void main(String[] args) throws Exception { System.out.println("-请输入0到100的一个数:-"); Scanner in = new Scanner(System.in); int num = in.nextInt(); int ran = (int) (Math.random() * 100) + 1; while (true) { if(num > ran) { System.out.println("大了,请重新输入:"); num = in.nextInt(); } else if(num < ran) { System.out.println("小了,请重新输入:"); num = in.nextInt(); } else { System.out.println("答对了"); break; } }
姜小白- 2013-12-01
  • 打赏
  • 举报
回复
代码写的有问题,小了之后就不会再大了,走下去就直接对了,请看代码

while(num<ran){
    System.out.println("小了,请重新输入:");
    Scanner in=new Scanner(System.in);
    num= in.nextDouble();
    if(num==ran){     // 如果此时num > ran,则跳出循环,顺势向下走到"对了"了
        System.out.println("答对了");
        break;
    }
}
System.out.println("对了!");

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧