JAVA语言学习记录 -part2

day 09

break和continue

break和continue用于switch-case语句中,但两者作用略有不同

break:跳出循环
continue:结束本次循环

实践

class VariableTest{
public static void main(String[] args) {
       for(int i=1;i<=10;i++){
              if(i%4==0){
                     break;
              }
       System.out.println(i);
       }
}      
}

在这里插入图片描述
这里运行到i=4时,因为i%4==0,所以直接结束循环,此时再看continue

class VariableTest{
public static void main(String[] args) {
       for(int i=1;i<=10;i++){
              if(i%4==0){
                     continue;
              }
       System.out.println(i);
       }
}      
}
在这里插入图片描述

eclipse使用

安装的话去官网就行,下载zip文件
部分需要需要,修改如下(修改编码为UTF-8)
在这里插入图片描述

在这里插入图片描述
而后修改字体大小
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

运行Hello World

首先我们需要去建一个项目
在这里插入图片描述
没有这个java project的直接去new下面那个other里找一下就可以了
在这里插入图片描述
然后随便起一个项目名
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此时还需要搭建一个package,直接在左侧右键,而后就出现了new,如下图操作即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此时就可以去new一个class了,也就是写文件,操作依然是右键在这里插入图片描述
随便写一个名字
在这里插入图片描述
在这里插入图片描述
书写的话写一个main,而后按ctrl+/就会出现关键词
在这里插入图片描述
在这里插入图片描述
此时运行的话右键在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数组

定义

数组是多个相同类型的数据按照一定顺序排列的集合,并使用一个名字命名,通过编号的方式对这些数据进行统一管理。

特点

数组的特点

1、数组是有序排列的
2、数值属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型。
3、创建数组对象会在内存中开辟一整块连续的空间
4、数组的长度一旦确定,就不能修改。

分类

按照维数:一维数组、二维数组、…..
按照数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组

数组初始化

数组初始化之前要先声明,然后初始化的话有两种方式,用代码来简单说一下
方法一

静态初始化

这类的话就是说既定义了长度,也定义了对应的值

public class HelloWorld {
    public static void main(String[] args) {
        int[] arr;//数组声明
        arr=new int[]{1,2,3,4};//数组初始化
}
}

方法二

动态初始化

这类的话就是只定义一个长度,不定义对应的值

public class HelloWorld {
    public static void main(String[] args) {
        int[] arr;//数组声明
        arr=new int[5];
}
}

当然,声明和初始化是可以写在一起的

public class HelloWorld {
    public static void main(String[] args) {
        int[] arr=new int[5];//数组声明
}
}

如果此时不赋值,直接输出的话,会输出5个0,这是因为数组元素的默认初始化值为0

数组调用

public class HelloWorld {
    public static void main(String[] args) {
        String[] names = new String[5];//数组声明
        names[0]="赵";
        names[1]="钱";
        names[2]="孙";
        names[3]="李";
        names[4]="周";
    }
}

数组长度与遍历

如何查看数组长度呢,方法是数组名.length

public class HelloWorld {
    public static void main(String[] args) {
        String[] names = new String[5];//数组声明
        names[0]="赵";
        names[1]="钱";
        names[2]="孙";
        names[3]="李";
        names[4]="周";
        System.out.println(names.length);
    }
}

在这里插入图片描述
如何遍历数组呢,用循环即可

public class HelloWorld {
    public static void main(String[] args) {
        String[] names = new String[5];//数组声明
        names[0]="赵";
        names[1]="钱";
        names[2]="孙";
        names[3]="李";
        names[4]="周";
        int i;
        for(i=0;i<names.length;i++) {
            System.out.println(names[i]);
        }
    }
}
在这里插入图片描述

实践

题目1

找出联系方式

public class HelloWorld {
    public static void main(String[] args) {
        int[] array = new int[] {0,1,2,3,7,8,9};
        int[] index = new int[] {1,6,5,3,6,1,0,4,2,1,3};
        String str="";
        for(int i=0;i<index.length;i++) {
            str +=array[index[i]];
        }
        System.out.println("联系方式"+str);
    }
}

这个要怎么看呢,看循环里是array[index[i]],其实也就是个套娃循环的,从i=0开始,此时index[0]为1,array[1]为1,首页联系方式第一位就为1,同理,i=1时,index[1]为6,array[6]为9,第二位为9,这样依次算到最后,就可以得到联系方式
在这里插入图片描述

题目2

设计一个程序,输入学生的成绩,并求出最大值,同时输出学生等级,等级评判规则:与最大值差值十分及以下的为A,二十分及以下为B,三十为C,其余为D

import java.util.Scanner;
public class HelloWorld {
    public static void main(String[] args) {
        //1、使用Scanner,读取学生个数
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入学生个数");
        int number=scanner.nextInt();
        //2、创建数组,存储学生成绩,动态初始化。
        System.out.println("请输入学生成绩");
        int[] score=new int[number];
        //3、给数组的元素赋值
        for(int i=0;i<number;i++) {
            score[i]= scanner.nextInt();
        }
        //4、获取数组元素的最大值
        int max=0;
        for(int i=0;i<number;i++) {
            if(max<score[i]) {
                max=score[i];
            }
        }
        System.out.println("最高分为" + max);
        //5、根据每个学生成绩与最大值差值进行等级评分
        char level;
        for(int i=0;i<number;i++){
            if(max-score[i]<=10) {
                level='A';
            }
            else if(max-score[i]<=20) {
                level='B';
            }
            else if(max-score[i]<=30) {
                level='C';
            }
            else {
                level='D';
            }
            System.out.println("student "+i+"score is "+score[i]+" grade is "+level);
        }
    }
}
在这里插入图片描述

day 10

二维数组

类似于一维数组,只不过多了一个[]和{}而已,举个栗子

int[][] arr=new int[][]{{1,2,3},{4,5},{6,7,8}};

数组调用

public class array {
    public static void main(String[] args) {
        int[][] arr=new int[][]{{1,2,3},{4,5},{6,7,8}};
        String[][] arr1 =new String[3][2];
        String[][] arr2 =new String[3][];
        System.out.print(arr[1][1]);
        System.out.print(arr1[2][1]);
    }
}

在这里插入图片描述
后面为null是因为没赋值,默认的值为null
这个时候我们如果钓鱼arr2会怎样呢
在这里插入图片描述
二维数组时,后面的[ ]可以为空,但不能直接调用这个,因为二维是个空指针

查看数组长度与遍历

public class array {
    public static void main(String[] args) {
        int[][] arr=new int[][]{{1,2,3},{4,5},{6,7,8}};
        String[][] arr1 =new String[3][2];
        String[][] arr2 =new String[3][];
        System.out.println(arr.length);//3,这是因为它把里面的一维数组当做一个整体
        System.out.println(arr[0].length);//3,三个数分别为1,2,3
        System.out.println(arr[1].length);//2,两个数为4和5

    }

}

在这里插入图片描述
如何遍历数组呢,用两个for循环即可

public class array {
    public static void main(String[] args) {
        int[][] arr=new int[][]{{1,2,3},{4,5},{6,7,8}};
        String[][] arr1 =new String[3][2];
        String[][] arr2 =new String[3][];
        for(int i=0;i<(arr.length);i++) {
            for(int j=0;j<(arr[i].length);j++) {
                System.out.println(arr[i][j]);
            }

        }
    }

}
在这里插入图片描述

不同类型下的一维数组的默认初始值

整型:0
浮点型:0.0
char型:0
布尔型:false
引用类型:null

day11

数据结构

数据与数据之间的逻辑关系

集合
一对一
一对多
多对多

还有数据的存储结构
数据的存储结构分为三种

线性表:顺序表(数组)、链表、栈、队列
树形结构:二叉树
图型结构:

数据的算法分为两种

排序算法
搜索算法

数组的复制、反转和查找

复制实践

public class array {
    public static void main(String[] args) {
        String[] arr1=new String[]{"aa","bb","cc","dd"};
        String[] arr2=new String[arr1.length];
        for(int i=0;i<arr1.length;i++) {
                arr2[i]=arr1[i];
                System.out.println(arr1[i]);
                System.out.println(arr2[i]);    
            }

    }
}
在这里插入图片描述

反转实践

public class array {
    public static void main(String[] args) {
        String[] arr1=new String[]{"aa","bb","cc","dd","ee","ff"};
        String[] arr2=new String[arr1.length];
        for(int i=0;i<arr1.length/2;i++) {
                String temp=arr1[i];
                arr1[i]=arr1[arr1.length-i-1];
                arr1[arr1.length-i-1]=temp;
    }
        for(int i=0;i<arr1.length;i++) {
            System.out.println(arr1[i]);
        }
}
}
在这里插入图片描述

查找实践

枚举法

public class array {
    public static void main(String[] args) {
        String[] arr1=new String[]{"aa","bb","cc","dd","ee","ff"};
        String find="cc";
        boolean flag= true;
        for(int i =0;i<arr1.length;i++) {
            if(find.equals(arr1[i])) {
                System.out.println("找到该元素了,位于第"+i+"个");
                flag=false;
                break;
            }
        }
        if(flag) {
            System.out.println("很遗憾,没有找到此元素");
        }
        }
}
在这里插入图片描述

二分法

public class array {
    public static void main(String[] args) {
        int[] arr1=new int[] {-72,-12,-74,-43,-89,98,49,69,39};
        int find=49;
        boolean flag= true;
        int head=0;//初始首索引
        int end=arr1.length-1;//初始末索引
        while(head<=end) {
            int middle=(head+end)/2;
            if(find==arr1[middle]) {
                System.out.println("找到了指定元素,该元素为第"+middle+"个");
                flag=false;
                break;
            }
            else if(find<arr1[middle]){//中间值在查找值右边,此时另中间值左边一个为最末值
                end=middle-1;
            }
            else {
                head=middle+1;
            }
        }
        if(flag) {
            System.out.println("很遗憾,没有找到此元素");
        }
        }
}
在这里插入图片描述
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
 
...