javase复习day05

1.1 循环高级综合练习

        1.1.1 无限循环

注意事项:

        无限循环下面不要在写其他代码,因为循环永远停不下来,无法执行下面的语句。

1.1.2 跳转控制语句

练习;

        

    public static void main(String[] args) {
        for (int i = 0; i <= 5 ; i++) {
            if (i==3){
                //结束本次循环开启下次循环
                continue;
            }
            System.out.println("小老虎在吃包子"+i);
        }
    }

练习:

    public static void main(String[] args) {
        for (int i = 0; i <= 5 ; i++) {
            if (i==3){
                //结束整个循环
                System.out.println("小老虎在吃包子"+i);
                break;
            }
            System.out.println("小老虎在吃包子"+i);
        }
    }

分类:

  1. continue: 跳过本次循环,继续执行下次循环。
  2. break :结束整个循环。

1.1.4 获取随机数

  1.  导包
    import java.util.Random;
  2. 创建对象
    Random r = new Random();
  3. 生成随机数
            //包头不包尾,包左不包右
            //这个范围从0开始,到这个数减一结束
            int number = r.nextInt(100);//0~99

获取固定范围的随机数:

  1. 让这个范围头尾都减一个值,让这个范围从0开始
  2. 让尾巴加1
  3. 最终的结果,在加上第一步减去的值

1.1.3 练习

练习一:

    

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入开始的数字");
        int number = sc.nextInt();
        for (int i = number; i <=100; i++) {
            if (i%10==7||i/10%10==7||i%7==0){
                System.out.println("过");
                continue;
            }
            System.out.println(i);
        }
    }

    练习二:

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数字");
        int number = sc.nextInt();
        int i = 1;
        int j;
        do{
            i++;
           j = i*i;
//            System.out.println(i);
        }while (j<=number);
        System.out.println("平方根:"+ (i-1));
    }

方法二:

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数字");
        int number = sc.nextInt();
        for (int i = 1; i < number ; i++) {
            if (i*i == number){
                System.out.println("平方根为: "+i);
                break;
            }
            if (i*i>number){
                System.out.println("平方根为: "+(i-1));
                break;
            }
        }
    }

练习三:

        

质数:如果一个整数只能被1和本身整除,则是质数

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数字");
        int number = sc.nextInt();
        //定义一个变量,表示标记
        /*
        标记numbers是否是一个质数
        true 是质数
        false 不是质数

        当前使用count标记
         */
        int count=0;
        for (int i = 2; i < number; i++) {
            if (number%i==0){
                System.out.println("不是质数 "+i);
                count++;
                break;
            }
        }
        if (count==0){
            System.out.println(number+"是质数");
        }
    }

练习四:

    public static void main(String[] args) {
        //扩展需求:加一个保底,三次不中则直接猜中
        Random r = new Random();
        //包头不包尾,包左不包右
        //这个范围从0开始,到这个数减一结束
        int number = r.nextInt(100)+1;//0~99
        //秘诀
        /*
        让这个范围头尾都减一个值,让这个范围从0开始
        让尾巴加1
        最终的结果,在加上第一步减去的值
         */
        Scanner sc = new Scanner(System.in);
        int count=0;
        while (true){
            System.out.println("请输入你猜的数字");
            int n = sc.nextInt();
            count++;
            if (count==3){
                System.out.println("猜中了");
                break;
            }
            if (n<number){
                System.out.println("小了");
            } else if (n>number) {
                System.out.println("大了");
            } else{
                System.out.println("猜中了");
                break;
            }
        }
    }

1.2 数组

        1.2.1 数组介绍

数组:一种容器,可以用来存储同种类型的多个值。

1.2.2 数组的定义

1.2.2.1 数组的初始化

初始化:在内存中为数组容器开辟空间,并将数据存入容器的过程。

初始化的两种方式:

        静态初始化

        动态初始化

静态初始化

注意点:

        范例中数据的长度为三。

        数组创建完毕后他的长度就固定了不能发生变化。

1.2.2.3 数组的地址和元素访问

数组的地址值表示数组在内存中的位置。

        扩展:

解释地址值的格式含义 [D@776ec8df

  • [ 表示当前是一个数组
  • D 表述当前数组中的元素是double类型的
  • @ 表示一个间隔符号(固定搭配)
  • 776ec8df 是真正的地址值
1.2.2.3.1 数组元素访问

索引:下标,角标。

特点:从0开始,逐个+1增长,连续不间断。

1.2.2.4 数组遍历

数组遍历:将数组中的所有内容取出来,遍历指取出数据的过程。

    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5,6};
//        获取数组的所有数据
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }

扩展

        自动生成数组遍历的方式:idea提供, 数组名.fori 

练习:

    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        //定义求和变量
        int sum = 0;
//        获取数组的所有数据
        for (int i = 0; i < arr.length; i++) {
            int i1 = arr[i];
            sum = sum +i1;
        }
        System.out.println(sum);
    }

练习二:

    public static void main(String[] args) {
            int[] arr = {1,2,3,4,5,6,7,8,9,10};
            //记录被三整除的个数
            int count = 0;
//        获取数组的所有数据
            for (int i = 0; i < arr.length; i++) {
                if (arr[i]%3==0){
                    System.out.println(arr[i]);
                    count++;
                }
            }
            System.out.println(count);
    }

练习三:

    public static void main(String[] args) {
    int[] arr = {1,2,3,4,5,6,7,8,9,10};
    for (int i = 0; i < arr.length; i++) {
        if (arr[i]%2==0){
//            偶数
            arr[i] = arr[i]/2;
        }else {
            arr[i] = arr[i]*2;
        }
    }
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
}

动态初始化

  • 默认初始化值的规律:
    /*
    整数:0
    小数:0.0
    字符类型:'/u0000' 空格
    布尔类型: fales
    引用数据类型: null
     */
    public static void main(String[] args) {
        int[] arr = new int[10];
//        for (int i = 0; i < arr.length; i++) {
//            System.out.println(arr[i]);
//        }
        //添加数据
        arr[0] = 10;
        arr[2]=20;
        //获取信息
        System.out.println(arr[0]);
        System.out.println(arr[1]);//默认初始化值,0
        System.out.println(arr[2]);
        //默认初始化值的归路
        /*
        整数:0
        小数:0.0
        字符类型:'/u0000' 空格
        布尔类型: fales
        引用数据类型: null
         */
    }

1.2.2.5 动态和静态初始化的区别

1.2.2.6 数组的常见问题

当访问了数组中不存在的索引,就会引发索引越界异常

    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        //长度5
        //最小索引:0
        //最大索引:4
        System.out.println(arr[10]);//发生索引越界异常
    }

练习一

    public static void main(String[] args) {
        //拓展
        /*
        写最小值
        max必须要赋初值为arr[0],否则如果数组中都为负数则判断出错
        循化最好从1开始因为赋初值为arr[0],不需要比较。
         */
        int[] arr = {33,5,22,44,55};
        int max = arr[0];
        int min = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]>max){
                max = arr[i];
            }
            if (arr[i]<min){
                min = arr[i];
            }
        }
        System.out.println(max);
        System.out.println(min);
    }

练习二

        

    public static void main(String[] args) {
        int[] arr = new int[10];
        Random r=new Random();
        int n;
        //求和
        double sum = 0;
        //平均数
        double avg;
        //小于平均数的标记
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            n = r.nextInt(100)+1;
            arr[i] = n;
            sum +=n;
        }
        System.out.println(sum);
        avg = sum/arr.length;
        System.out.println(avg);
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]<avg){
                count++;
            }
        }
        System.out.println(count);
    }

练习三:

    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        int temp;
//        int i = 0;
//        while (i<(4-i)){
//            temp = arr[i];
//            arr[i] = arr[(4-i)];
//            arr[(4-i)] = temp;
//            i++;
//        }
//        for (int j = 0; j < arr.length; j++) {
//            System.out.println(arr[j]);
//        }
        //方法二:
        //定义两个变量
        for (int k = 0, j= arr.length - 1;k<j;k++,j--){
            temp = arr[k];
            arr[k] = arr[j];
            arr[j] = temp;
        }
        for (int j = 0; j < arr.length; j++) {
            System.out.println(arr[j]);
        }
    }

练习四:

    public static void main(String[] args) {
        Random r = new Random();
        int[] arr = {1,2,3,4,5};
        int temp;
        for (int i = 0; i < arr.length; i++) {
            int n = r.nextInt(arr.length);
            temp = arr[i];
            arr[i] = arr[n];
            arr[n] = temp;
        }
        for (int j = 0; j < arr.length; j++) {
            System.out.println(arr[j]);
        }
    }

1.3 java 的内存分配

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值