A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张研老师 于 2015-12-5 10:38 编辑

import java.util.Scanner;
class GuessNumber_Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = (int)(Math.random()*100+1);
        System.out.println("我想好了,猜一个数字");
        while (true) {
            int gnum = sc.nextInt();
            if (gnum>num) {
                System.out.println("大了");
            }else if (gnum<num) {
                System.out.println("小了");
            }else {
                System.out.println("就是我!");
                break;
            }
        }
    }
}
加上while(true){}可以一直循环,一直玩游戏,加一步判断是否继续游戏,y/n,继续的话输出:我想好了,猜一个数字,否则程序结束
结果做成了这个样子.. "我想好了,猜一个数字,"这句话怎样才能只在游戏开始输出一次呢.

1.png (5.74 KB, 下载次数: 163)

1.png

评分

参与人数 1技术分 +3 黑马币 +3 收起 理由
张研老师 + 3 + 3 赞一个!加油哦!

查看全部评分

19 个回复

倒序浏览
妹子你这是在逗人吧!!
回复 使用道具 举报
^_^笨和尚^_^ 发表于 2015-11-27 23:31
妹子你这是在逗人吧!!

没有啊,做蒙了.....
回复 使用道具 举报
定义在循环外面就是  就只会在程序运行的时候打印一次啊!
回复 使用道具 举报
13277988289 发表于 2015-11-27 23:52
定义在循环外面就是  就只会在程序运行的时候打印一次啊!

定义在外面就只有第一次运行会显示,第二次第三次,就不输出了啊,直接等待录入了呀...
回复 使用道具 举报
import java.util.Scanner;

public class Demo33 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("我想好了,猜一个数字");
        while (true) {
                int num = (int)(Math.random()*100+1);
            int gnum = sc.nextInt();
            if (gnum>num) {
                System.out.println("大了");
            }else if (gnum<num) {
                System.out.println("小了");
            }else {
                System.out.println("就是我!");
                break;
            }
        }
    }
}

还有一个问题,留给你发现一下,
回复 使用道具 举报
我没太搞清楚你要问的是什么,刚又看了下你的问题  好像是要添加一个判断,我在你的代码下面加了几行  你看看是不是这个意思!至于那个"我想好了,猜一个数字,"这句话是只在运行时出现一次还是每次输入之前都要提示呢?下面是代码

import java.util.Scanner;
class GuessNumber_Test
{
    public static void main(String[] args)
        {
        Scanner sc = new Scanner(System.in);
        int num = (int)(Math.random()*100+1);
        System.out.println("我想好了,猜一个数字");
        while (true)
                {
            int gnum = sc.nextInt();
            if (gnum>num)
                        {
                System.out.println("大了");
            }
                        else if (gnum<num)
                        {
                System.out.println("小了");
            }
                        else
                        {
                System.out.println("就是我!");
                break;
            }
                        System.out.println("是否继续游戏,y/n");
                        String str=sc.next();
                        if("y".equals(str)||"Y".equals(str))
                                continue;
                        else if("n".equals(str)||"N".equals(str))
                                break;

        }
    }
}

这个代码你还可以再优化一下,如果在输入数字时输入了  其他字符  会发生异常
回复 使用道具 举报
你没有逗人吗
我想好了,猜一个数字
50
小了
80
小了
90
大了
85
大了
82
小了
83
就是我!
我不知道怎么上传图片,这是运行结果
回复 使用道具 举报
本帖最后由 hansnowqiang 于 2015-11-28 08:37 编辑

定义一个boolean flag=true
while(flag)
在打印”就是我“之前加flag=false解决问题
回复 使用道具 举报
笨  放进循环第一句
回复 使用道具 举报
回复 使用道具 举报
public class Test4 {
        public static void main(String[] args) {
                int  num = new Random().nextInt(100)+1;
                System.out.println("请输入一个数字");
                compareTo(num);
        }

        private static void compareTo(int num) {
               
                int i = new Scanner(System.in).nextInt();
                if(i==num){
                        System.out.println("恭喜你猜对了!");
                }else if(i>num){
                        System.out.println("猜大了!");
                        compareTo(num);
                }else if(i<num){
                        System.out.println("猜小了!");
                        compareTo(num);
                }
        }
}
回复 使用道具 举报
只能说妹子好萌
回复 使用道具 举报
13277988289 发表于 2015-11-27 23:52
定义在循环外面就是  就只会在程序运行的时候打印一次啊!

恩恩 ,知道这个 ,我做的这个不是我要的效果而已
回复 使用道具 举报

不是不是 , 想法多,没实现出来
回复 使用道具 举报
奔跑着 发表于 2015-11-29 17:43
public class Test4 {
        public static void main(String[] args) {
                int  num = new Random().nextInt(100 ...

哎呦不错呦~
回复 使用道具 举报
你是对的 发表于 2015-11-28 18:26
笨  放进循环第一句

那样就每一遍都有拉,
回复 使用道具 举报
hansnowqiang 发表于 2015-11-28 08:35
定义一个boolean flag=true
while(flag)
在打印”就是我“之前加flag=false解决问题

哦哦哦,我试试这个
回复 使用道具 举报
13277988289 发表于 2015-11-28 00:51
我没太搞清楚你要问的是什么,刚又看了下你的问题  好像是要添加一个判断,我在你的代码下面加了几行  你看 ...

我没表达清楚么...嘴太笨了 ....我试一试
回复 使用道具 举报
顶一下!!!!!!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马