java学习笔记——scanner、Random

Scanner
5月18日第一节
从键盘输入n个数,求最大值。sc.nextInt();

public class _01Scanner {
     
    public static void main(String[] args) {
     
        Scanner sc=new Scanner(System.in);
        System.out.println("你想要输入几个数:");
        int length=sc.nextInt();//输入一个int类型的值length
        int[] arr=new int[length];//把length传入int类型的数组arr

        for(int i=0;i<length;i++){
     //循环次数确定用for循环
            int num=sc.nextInt();//每循环一次,输入一个数num
            arr[i]=num;//把num放入数组arr[i]
            /*
            arr[i]=sc.nextInt();
            */
        }
        System.out.println(Arrays.toString(arr));

        //求最大值,进行遍历
        int max=arr[0];
        for (int num : arr) {
     //foreach快捷键,iter+回车
            if(max<num){
     
                max=num;
            }
        }
        System.out.println("max = " + max);
    }
}

java学习笔记——scanner、Random_第1张图片

@[TOC]Random类
5月18日第二节
Random类,用于生成随机数;

  1. 创建对象:Random r = new Random();
  2. 调用方法:r.nextInt();随机数的范围是int的范围
    r.nextInt(int n);随机数的范围是0~(n-1)
public class _02Random {
     
    public static void main(String[] args) {
     
        Random r = new Random();//创建对象,把对象赋给一个变量
        int num=r.nextInt();//随机数的范围是int类型
        System.out.println("num = " + num);

        for (int i = 0; i < 10; i++) {
     //生成10个随机数

            int num2=r.nextInt(10);//随机数的范围是0~9
            System.out.println("num2 = " + num2);
        }
    }
}

java学习笔记——scanner、Random_第2张图片
练习:生成1~n的随机数
例如生成1~15的随机数
r.nextInt(int n);随机数的范围是0~(n-1)

public class _02Random {
     
    public static void main(String[] args) {
     
        for (int i = 0; i < 10; i++) {
     

            int num = m(15);//调用m方法,传入一个数15
            System.out.println("num = " + num);
        }
    }

    public static int m(int num) {
     //返回值,随机数,int类型
        Random r = new Random();
        //r.nextInt(num);输入的数是15,生成随机数0~14
       // r.nextInt(num)+1;整体+1,生成随机数1~15;r.nextInt(num)+1表示的是一个数,要return回去
        return r.nextInt(num)+1;
    }
}

java学习笔记——scanner、Random_第3张图片

练习,生成14~17之间的随机数
创建对象:Random r = new Random();
r.nextInt(int n);随机数的范围是0~(n-1)

思路:r.nextInt(4)+14

public class _03Random {
     
    public static void main(String[] args) {
     
        for (int i = 0; i < 10; i++) {
     
            int num = m(4);
            System.out.println("num = " + num);
        }
    }
    public static int m(int num) {
     
        Random r = new Random();
        return r.nextInt(num)+14;
    }
}
public class _03Random {
     
    public static void main(String[] args) {
     
        for (int i = 0; i < 10; i++) {
     
            int num = m(14,17);//调用m方法,传入14和17
            System.out.println("num = " + num);
        }
    }
    public static int m(int num1,int num2) {
     
        Random r = new Random();
        return r.nextInt(num2-num1+1)+num1;
    }
}

java学习笔记——scanner、Random_第4张图片

练习:模拟猜数字的小游戏,先随机生成一个1-100的随机数num,
通过键盘输入去猜一个数guessNumber,如果猜对了,就提示“恭喜你,猜对了!”
如果猜大了,就提示大了,如果小了就提示小了,
一共有7次,超过了还没才对就提示“哈哈,你输了!”

public class _01zy {
     
    public static void main(String[] args) {
     
        //系统产生一个1~100之间的随机数
        Random r = new Random();
        int num = r.nextInt(100) + 1;
       // System.out.println("num = " + num);

        for (int i = 1; i <=7; i++) {
     //循环7次
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入你猜测的数字:");
            int guessNumber = sc.nextInt();//从键盘录入一个int型的数字guessNumber
            //用if比较num与guessNumber
            if (num > guessNumber) {
     
                System.out.println(i + "你猜的数据" + guessNumber + "小了!");
            }
            else if (num < guessNumber) {
     
                System.out.println(i + "你猜的数据" + guessNumber + "大了!");
            }
            else {
     
                System.out.println("恭喜你,猜对了!");
               break;
            }
            if(i>=7){
     
                System.out.println("哈哈,你输了");
            }
        }
    }
}

java学习笔记——scanner、Random_第5张图片

方法重载
5月18第一节

  1. 编写重载方法,分别实现输出字符串,字符串数组,整型数据和整形数组。

    不需要返回值,用void

public class Demo01 {
     
    public static void main(String[] args) {
     
        print("hello world");
        print(new String[]{
     "123", "you", "hello", "world"});
        print(78);
        print(new int[]{
     45, 34, 9999, 12, 3});
    }

    public static void print(String s) {
     //传入字符串s
        System.out.println("s = " + s);
    }

    public static void print(String[] arr) {
     //传入字符串数组arr
        System.out.println(Arrays.toString(arr));
    }

    public static void print(int i) {
     //传入整型数据i
        System.out.println("i = " + i);
    }

    public static void print(int[] arr) {
     //传入整型数组arr
        System.out.println(Arrays.toString(arr));
    }
}

java学习笔记——scanner、Random_第6张图片

这是之前自己写的作业

public class zy01 {
     
    public static void main(String[] args) {
     
        String result=add("hello world");
        String[] arr=add();
        int c=add(3,4);
        int[] arr2={
     1,3,5,7};

        System.out.println(result);
        System.out.println(Arrays.toString(arr));
        System.out.println(c);
        System.out.println(Arrays.toString(arr2));

    }
    public static String add(String s){
     
        return s;
    }
    public static String[] add(){
     
        String[] arr={
     "abc","A","B","C"};
        return arr;
    }
    public static int add(int a,long b){
     
        return (int)(a+b);
    }
    public static int[] add(int[] arr2){
     
        //int[] arr2={1,3,5,7};
        return arr2;
    }
}

java学习笔记——scanner、Random_第7张图片

  1. 编写重载方法分别计算一个整数,一个浮点数的各位数字之和。
public class Demo02 {
     
    public static void main(String[] args) {
     
        int sum = getSum(-567);//传入整数-567,用sum接收一下
        System.out.println("sum = " + sum);

        int sum1 = getSum(3.14);
        System.out.println("sum1 = " + sum1);
    }
    /*
        num % 10 取余
        num / 10  取整
     */
    public static int getSum(int num){
     //传入一个整数num
        int sum=0;//定义变量sum求和,赋初值0
        if(num<0){
     //如果num是负数,把它变为正数
            num=num*(-1);
        }
        while (num>0){
     //循环条件不确定,优先使用while循环
            sum+=num%10;
            num=num/10;
        }

        return sum;
    }
    public static int getSum(double num){
     //传入一个浮点数num
        //将浮点数转换为整数,乘10
        while(num!=(int)num){
     
            num=num*10;
        }
        //getSum((int) num);调用上面的getSum方法,强转为int类型

        return getSum((int) num);
    }
}

java学习笔记——scanner、Random_第8张图片

这是之前自己写的作业

public class zy02_2kk {
     
    public static void main(String[] args) {
     
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        add(a);
        float b=sc.nextFloat();
        add(b);


    }

    public static void add(int a) {
     
        int sum = 0;
        while (a != 0) {
     
            sum += a % 10;
            a = a / 10;
        }
        System.out.println(sum);
    }

    //将浮点数转换为字符串
    public static void add(float b) {
     
        String str=b+"";
        int sum=0;
        for(int i=0;i<str.length();i++){
     
            char c=str.charAt(i);
            if(c!='.'){
     
               sum+=c-48;
            }
        }
        System.out.println(sum);
    }
}

java学习笔记——scanner、Random_第9张图片

5月18第一节

练习题: B哥去参加青年歌手大奖赛,有n个评委打分,
(去掉一个最高一个最低)求平均分?
int[] arr={12,14,11,10,8,18,23,11,14,11};

public class Demo03 {
     
    public static void main(String[] args) {
     
        int[] arr={
     12,14,11,10,8,18,23,11,14,11};
        double avg = getAvg(arr);
        System.out.println("avg = " + avg);
    }
    public static double getAvg(int[] arr){
     //传入int型数组arr
        // 定义平均分变量avg,总分sum,最高分max,最低分min
        double avg;
        int sum = 0;
        int max=arr[0];
        int min=arr[0];
        for (int num : arr) {
     
            sum=sum+num;//sum赋初值0
            if(max<num){
     //max赋初值为数组arr的第一个元素
                max=num;
            }
            if(min>num){
     //min赋初值为数组arr的第一个元素
                min=num;
            }
        }
        avg=(sum-max-min)/(arr.length-2.0);
        return avg;
    }

}

在这里插入图片描述

public class zy03kk {
     
    public static void main(String[] args) {
     
        Scanner sc = new Scanner(System.in);
        System.out.print("n="+" ");
        int n=sc.nextInt();
        System.out.println("请输入分数:");
        int[] a = new int[n];
        for (int i = 0; i < a.length; i++) {
     
            a[i] = sc.nextInt();
        }
        int max=a[0] ;//最大值
        int min=a[0];//最小值
        int sum = 0;//平均分
        for (int i = 0; i < a.length; i++) {
     

            if (max < a[i]) {
     
                max = a[i];
            }
            if (min > a[i]) {
     
                min = a[i];
            }

            sum += a[i];
        }
        int result = (sum - max - min);
        double avr = result /(a.length-2.0);
        System.out.print(avr);


    }
}

java学习笔记——scanner、Random_第10张图片

你可能感兴趣的:(笔记,java)