黑马程序员技术交流社区

标题: Scanner类、Random类 [打印本页]

作者: 戴锋    时间: 2018-7-19 23:31
标题: Scanner类、Random类
Scanner类的功能:    可以实现键盘输入数据,到程序当中

引用类型的一般使用步骤:

    1.导包
    import包路径.类名称:
    如果需要使用的目标类,和当前类位于用一个包下,则可以省略导包语句不写
    只有java.lang包下的内容不需要导包,其他的包都需要导包

    2.创建
    类名称 对象名 = new 类名称();

    3.使用:
    对象名.成员方法名()

    获取键盘输入的一个int数字: int num = sc.nextInt();
    获取键盘输入的一个字符串:  String str = sc.next();


例如:
import java.util.Scanner;
//1.导包  
public class Demo01Scanner {

     public static void main(String[] args) {
         //2.创建
         //备注: System.in代表从键盘进行输入
         Scanner sc = new Scanner(System.in);//不变写法

         //3.获取键盘输入的int数字
         int num = sc.nextInt();
         System.out.println("输入的int数字的:" + num);

         //4.获取键盘输入的字符串
         String str = sc.next();
         System.out.println("输入的字符串为:" + str);
     }
}



Random类:  用来生成随机数字

使用起来也是三个步骤:

    1.导包
    import java.util.Random

    2.创建
    Random r = new Random(); //小括号当中留空即可

    3.使用
    获取一个随机的int数字(范围是int所有范围,有正负): int num = r.nextInt;
    获取一个随机的int数字(参数代表了范围,作闭右开区间): int num = r.nextInt(3);
    实际上代表的含义是:[0,3),也就是0~2

例如:
import java.util.Random;
//1.导包
public class Demo05Random {
     public static void main(String[] args) {        
        //2.创建
         Random r = new Random();

//        System.out.println("随机数为:" + r.nextInt());
         //3.使用
         int i = r.nextInt();
         System.out.println("随机数为:" + i);
     }
}

例题:     
       分析以下需求并实现:
          1.通过键盘录入一个数字,作为数组的长度
          2.根据录入的数字,创建一个长度为该数字的数组
          3.通过随机数为数组中的每个元素进行赋值。随机数的范围在1-100之间
          4.求出数组中最大数字
          5.求出数组中的数字平均值

解题:
import java.util.Random;
import java.util.Scanner;
public class LianXi01 {
     public static void main(String[] args) {
         Scanner sc = new Scanner(System.in);
        System.out.println("请输入数组长度:");
        int length = sc.nextInt();
        int a[] = new int[length];
        System.out.println("数组长度为:" + length);
        System.out.println("==================");

        Random ran = new Random();
        int sum = 0;
        System.out.print("数组为:[");
        for (int i = 0; i < length; i++) {
             int num = ran.nextInt(100) + 1;
            a = num;
            sum += a;
            if (i < length-1){
                 System.out.print(num + ",");
            }else {
                 System.out.println(num + "]");
            }
         }
         System.out.println("数组的和值为:"+sum);
        System.out.println("==================");

        int temp = a[0];
        int max = temp;
        for (int j = 1; j < length; j++) {
             max = (max > a[j] ? max : a[j]);
        }
         System.out.println("数组最大值为:" + max);
        System.out.println("==================");

        double avr = (double) sum / (double) length;
        System.out.println("平均值为:"+avr);

    }
}

作者: 小浙姐姐    时间: 2018-7-23 17:46





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2