零基础Java第五期:输入输出(补)与猜数字游戏

目录

一、输入输出(补)

1.1.  

1.2. 使用 Scanner 循环读取 N 个数字,并求取其平均值

二、猜数字游戏

一、输入输出(补)

    上一期中,博主漏掉了一些有关输入的知识点,我们在这一期中补上。

1.1.  

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的年龄:");
        int age =scanner.nextInt();
        System.out.println(age+"岁");
        
        System.out.println("请输入你所在的省份:");
        String province= scanner.nextLine();
        System.out.println(province+"省");

        System.out.println("请输入你的体重:");
        double height= scanner.nextDouble();
        System.out.println(height+"kg");

    当我们输入年龄之后,回车,发现后面的字符串直接打印出了。这是因为当我们输入第一个整数后的回车时,后面的nextLine直接读取了回车。我们要想解决这个问题呢,其实也很简单。当读取了一个数据后,我们可以加上scanner.nextLine。

1.2. 使用 Scanner 循环读取 N 个数字,并求取其平均值

        Scanner sc=new Scanner(System.in);
        int sum=0;
        int num=0;
        while(sc.hasNextInt()){
            int tmp= sc.nextInt();
            sum+=tmp;
            num++;
        }
        System.out.println("Sum="+sum);
        System.out.println("Avg="+sum/num);
        sc.close();

      这道题中涉及到循环输入读取的问题。“hasNext”可以理解为是否有下一个数据,如果有,继续读取。当我们在Windows上的IDEA使用时,在最后输入一个ctrl+d就可以结束程序。 

二、猜数字游戏 

       系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 "低 了", 如果输入的数字比该随机数大, 提示 "高了" , 如果输入的数字和随机数相等, 则提示 "猜对了"。

       我们知道如何输入一个数字,那我们如何去生成一个随机数字呢?此时需要一个Random(同样需要导入util包)。 如果这段代码放在编译器上时,传入一个随机参数1114前面会有一个“seed”,100前面会有一个“bound”。如果我们运行上面这段代码,我们会发现每次生成的随机数是相同的。这个seed相当与系统的时间,如果不传参数,则系统的时间就是随机的。

        Random ran= new Random(1114);
        int num= ran.nextInt(100);//随机数的范围:[0,100)
        System.out.println(num);

       接下来就是猜数字,我们不知道自己要猜几次,所以这就是一个死循环。 下面的程序需要使用while循环,if语句还有break,下一期我们会讲到(如果C语言有一定基础的话,也能看懂)。

        Random ran= new Random();
        Scanner sca=new Scanner(System.in);
        int num= ran.nextInt(100);//随机数的范围:[0,100)
        System.out.println(num);
        while(true){
            System.out.println("请输入你要猜的数字:");
            int a= sca.nextInt();
            if(a>num){
                System.out.println("猜大了");
            }else if(a<num){
                System.out.println("猜小了");
            }else{
                System.out.println("恭喜你,猜对了");
                break;
            }
        }

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值