使用Java编写猜数字游戏

猜数字游戏:

编写程序随即生成一个0-100之间的随机数。程序提示用户输入一个数字,不停猜测,直到猜对为止。最后输出猜测的数字,和猜测的次数。并且如果没有猜中要提示用户输入的值是大了还是小了。

思考:

如何生成1-100之间随机数?

(int)(Math.random()*100)+1;

如何提示用户输入数字,

Scanner  sc=new Scanner(System.in);

int guessNum = sc.nextInt();

需要将随机数和用户输入的数字进行比较。

 

猜一次:

Scanner sc = new Scanner(System.in);

int num = (int)(Math.random()*100)+1;

       System.out.println("请输入0-100之间整数");

       int guessNum = sc.nextInt();

       if (guessNum == num) {

           System.out.println("中啦");

       } elseif (guessNum < num) {

           System.out.println("小啦");

       } else {

           System.out.println("大了");

       }

这个程序只能才一次,如何让用户重复输入直到猜对?

可以使用while循环

publicstaticvoid main(String[] args) {

       int num = (int)(Math.random()*100)+1;

       Scanner sc = new Scanner(System.in);

       while (true) {

           System.out.println("请输入1-100之间整数");

           int guessNum = sc.nextInt();

           if (guessNum == num) {

              System.out.println("中啦");

           } elseif (guessNum < num) {

              System.out.println("小啦");

           } else {

              System.out.println("大了");

           }

       }

    }

 

该方案发现了问题,虽然实现了让用户不停的输入,但是即使猜中了程序也不会停止。

那么就需要控制循环次数了。也就是while() 括号中的条件表达式。当用户猜测的数和系统生成的数字不相等时,就需要继续循环。

int num = (int)(Math.random()*100)+1;

       Scanner sc = new Scanner(System.in);

      

       int guessNum = -1;

       while (guessNum != num) {

System.out.println("请输入1-100之间整数");

           guessNum = sc.nextInt();

           if (guessNum == num) {

              System.out.println("中啦");

           } elseif (guessNum < num) {

              System.out.println("小啦");

           } else {

              System.out.println("大了");

           }

       }

 

为什么将guessNum初始化值为-1?因为如果初始化为0100之间程序会出错,因为可能是要猜的数。

1:首先程序生成了一个随机数

2:用户输入一个数字

3:循环检查用户数字和随机数是否相同,知道相同位置,循环结束

 


  • 13
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值