其他分享
首页 > 其他分享> > 20220716 第二组 刘世琦 学习笔记

20220716 第二组 刘世琦 学习笔记

作者:互联网

JAVA

(今日例题)

1. 员工管理系统(理解!会持续复习!)

2.数组

2.数组

有一个数组
键盘输入一个下标,获取指定下标位置的数字
输入的这个数是否合法?
需要判断几种情况?
1.输入的是一个负值
2.输入的是一个正值,越界了
3.正确的情况

package com.practise;

import java.util.Scanner;

public class Ch01 {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        
        int [] arr = new int[]{4,58,69,14,22,-1};
       
        System.out.println("请输入一个下标:");
        int index = sc.nextInt();
        
        if(index >= 0 && index <= arr.length - 1){
            // 合法的情况
            System.out.println("对应位置的值是:" + arr[index]);
        } else {
            // 条件 <0 || >5
            // 越界
            System.out.println("你输入的数据有误,无法获取...");
        }
    }
}

2.2 倒序输入数组数值(掌握)

输入一个数,数是从后往前加
倒序输入
第一次输入的值给arr[arr.length - 1 - 0]
第二次输入的值给arr[arr.length - 1 - 1]
第三次输入的值给arr[arr.length - 1 - 2]
数组的最大下标 = 数组的长度 - 1

package com.practise;

import java.util.Scanner;

public class Ch02 {

    public static void main(String[] args) {

        // 准备一个键盘
        Scanner sc = new Scanner(System.in);
        int [] arr = new int[5];
        for (int i = 0; i < arr.length; i++) {
            System.out.println("请输入第" + (i+1) +"个数:");
            // 输入
            int num = sc.nextInt();
            arr[arr.length - 1 - i] = num;
        }
        for (int i : arr) {
            System.out.println(i);
        }
    }
}

2.3 倒序输入数组数值,扩容后数组仍倒序(掌握)

输入1,2
[2,1]
[0,0,0,0]
[2,1,0,0]
[0,0,2,1]

package com.practise;

import java.util.Arrays;
import java.util.Scanner;

public class Ch03 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int [] arr = new int[2];
        int i = 0;
        main:while(true){
            System.out.println("请输入数据:");
            int num = sc.nextInt();
            arr[arr.length - 1 - i] = num;
            i++;
            if(i >= arr.length) {
                int [] newArr = new int[arr.length * 2];
                for (int j = 0; j < arr.length; j++) {
                    newArr[newArr.length - 1 - j] = arr[arr.length - 1 - j];
                }
                arr = newArr;
            }
            System.out.println("是否继续添加:1、是   2、否");
            String flag = sc.next();
            switch (flag){
                case "1":
                    continue;
                case "2":
                    System.out.println("当前数组为:" + Arrays.toString(arr));
                    break main;
//                    System.exit(-1);
            }
        }
    }
}

2.4 在数组某处插入数值(理解!会反复练习!)

1.因为数组已满,需要扩容
2.找到要插入的数据的位置
3.插入位置后面的数据需要向后移位
定义一个临时变量,存储原来index位置的元素
int temp = arr[index];
把要插入的数存到了指定的位置
arr[index] = num;
原来位置的后面的那个数向后移一位
arr[index + 2] = arr[index + 1];
arr[index + 1] = temp;
要插入的位置的原始数据保存起来
int temp = arr[index];
把要插入的数据放到指定位置
arr[index] = num;
判断要移位的数据的个数

package com.practise;

import java.util.Arrays;
import java.util.Scanner;

public class Ch04 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int [] arr = new int[]{1,2,3,4,5};
        // 扩容
        int [] newArr = new int[arr.length * 2];

        for (int j = 0; j < arr.length; j++) {
            newArr[j] = arr[j];
        }
        arr = newArr;
        main:while(true){
            System.out.println("请输入要插入数据的下标:");
            int index = sc.nextInt();
            System.out.println("请输入要插入的数据:");
            int num = sc.nextInt();
            int temp = arr[index];
            arr[index] = num;
            arr[index + 2] = arr[index + 1];
            arr[index + 1] = temp;
            int temp = arr[index];
            arr[index] = num;
            //判断要移位的数据的个数
            for (int i = 1; i < arr.length - index; i++) {
                arr[arr.length - i] = arr[arr.length - 1 - i];
            }
            arr[index + 1] = temp;
            System.out.println("现在数组为:" + Arrays.toString(arr));
            System.out.println("是否继续添加:1、是   2、否");
            String flag = sc.next();
            switch (flag){
                case "1":
                    continue;
                case "2":
                    System.out.println("当前数组为:" + Arrays.toString(arr));
                    break main;
//                    System.exit(-1);
            }
        }

    }
}

总结

今天老师的讲解很大部分都是我在昨天作业中进行不下去的地方,有一种豁然开朗的感觉,现在还在对代码的理解阶段,无法独立编写。在数组练习中,会有理解不到位的情况,但是我发现我对于题目的需求分析比之前更加全面,分析能力在一天天的学习中有所提升,每一天都会成为一个全新的自己,充满着热情迎接每一天的挑战,较为顺利的完成今天的数组作业。心情非常好,不仅仅是因为解决了存在令我存疑的问题,更是发现自己会比前一天有所进步,做到当天的事情当天解决,不要存在问题拖延的情况,我会让努力将自己变的更好!

标签:index,arr,20220716,int,System,length,数组,刘世琦,第二组
来源: https://www.cnblogs.com/Liusq11/p/16485419.html