java学习之各大语句(第二回)

java学习之路算法红宝书学习

`
第一章:java学习之路算法红宝书学习



跳转语句

break continue 语句

1 break语句

使用方法 如下:
出现的地点:1 switch条件语句中
作用 :终止某个case并且跳出switch结构。
2 循环语句中
作用 :跳出当前循环

2 countinue语句如下

作用是 终止本次循环执行下一次循环
比如输出所有奇数的值 1 3 5 7 9 等
注意 :这个countine的语句的跟break的本质区别在于一个是跳出整个循环不在进行下去另一个意义是直接结束这一轮循环开启下轮循环

数组 (自己的薄弱点薄弱项)

一、定义
比如记录一百名员工工资问题java中可以创建一个数组去记住这一百名员工的工资用来组件他们的数据部分
官方版:数组指一组数据集合,数组中每个数据成为元素。

同一个 数组中的元素类型必须一致

定义格式如下:

数组类型[]数组名=new数组类型[数组长度];
数组类型[]数组名=new 数组类型[](数组元素0 数组元素1 数组元素2 等)
数组类型[]数组名={数组元素0,数组元素。。。};`

具体表现形式如下所言

int []ids=new int[100];
String[]names =new String[]{“张三”,“tom”,。。。}
Object[]object={“张三”,“tom”,。。。};
第一种方式定义了int【】的一个变量ids 使用newint[100]制定了元素个数为100  但是没有赋值
   右边的{}是为了给数组进行初始化赋值的东西
     
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         

数组在内存中的存储格式:

1 对于int[]ids而言相当于定义了一个空的数组这个数组的名字叫做ids 类型为int
并且变量的ids会被分配一空的数组 并且没有被分配初始的值
2 ids==new int[100]这句指的是 创建了一个数组并且将数组内存地址赋值给变量ids 并且创建了名为序号0 到序号99的数组
表现形式为int[0]ids int [1]ids int [2]ids int[3]ids 这种表现形式
注意**:这种数组分配是定义了序号并没有定义长度 内存的里面的长度值还是0
只是前面加了一个序号为0-99的序号**

在数组中 数组中最小的索引量是数组的长度-1
length :java中为了方便获取数组的长度定义的一个具体的量
··`package 数组训练练习项目;

package 数组训练练习项目;

public class 数组的基本表达形式 {
                   public static void main(String args[]) {
                	   int[]ids=new int [100];
                	   System.out.println("ids[0]="+ids[0]);//访问数组的第一个元素
                	   System.out.println("ids[99]="+ids[99]);//访问数组的第100个元素注意数组元素的开始是从0-99号 一共100但是编号是从0开始的
                	   System.out.println("==========================");
                	   //第二种方式定义数组
                	   String[] names=new String[] {"张三","tom","李四"};//定义了数组的初始化变量并且为了数组进行了初始化赋值等问题。
                	   System.out.println("names[0]="+names[0]);
                	   System.out.println("names[2]="+names[2]);
                       System.out.println("==========================");//这种方式既制订了数组的初始化并且将数组进行初始化的赋值加入其中
                       //第三种方式定义数组
                     Object[] object={"zhangsna ","tom","jack"};
                       System.out.println("数组的长度为:"+object.length);//这是代表打印数组长度的东西
                       System.out.println("object[0]="+object[0]);
                       System.out.println("object[2]="+object[2]);
                       

效果图如下
java上述代码的效果图
注意 :出现的编程的细节问题有:
1 int【】 后面的空格没加
2 “”后面的逗号用成了的中文应该是全英文的表达形式
3 Object 【】 object={ }
中间第二个object的=号别忘记了
4 name 与names 注意细小的差别符号要对应一致
5 对于数组而言 打印语句的表达形式如下System。out.prinltln(”数组的昵称[数组所代表的序号]="+数组的昵称【所代表的序号】)
6 先进行定义数组 定义完成数组之后在进行赋值操作
7String[] name =new String[]{ zhangsan …}

java中数据类型的默认值

最为特殊的是char 默认是空字符既\u0000
boolean 是false
引用数字类型代表的是null

修改这些数组值的方法

人话:访问两遍即可第一次用System.out.println(“变量昵称[]=”+变量昵称[]);
然后第二行用赋值语句比如 :
ids【0】=2500; 简而言之就是数组昵称 【序号】= 赋值的数字
然后可以再次访问一遍来修改这个数据
数组名【角标】=元素值
注意:细节问题当出现例如张三李四等字眼的时候用“引号内容代替即可”
表现形式为:Object【0】=“张三”;意思是将object序号是0的元素改为张三或者赋值为张三

基础报错的学习 (java的报错提示越界错误)
提示的原因:本来这个字长规定为length的值是5 序号是从0-4 结果题目中给出提取数组为5值 因为长度超过了外围范围这时候加吧的最底下会出现
“ArrayLndexOutOfBoundsException”
数组访问的时候必须是有东西既不能这个数组是null然后进行访问
这样报错结果如下:NullPointerException 意思是空指针异常

总结 :数组一定要遵循三点:
1 声明数组名字和类型
2 创建数组
3 初始化数组元素
例如:

double[] a;//声明数组
a-=new double[N];//创建数组
for(int i=0;i<=N;i++)//初始化数组
  a[i]=0.0;//初始化数组

在第一条语句中
简化写法

double[] a=new double[N];

声明初始化

int[] a={1,1,2,3,5,8};//进行java的int类型的数组赋值初始化赋值
 

数组的数据结构应用

  1. 数组的遍历(经典题型背诵记忆加深理解)
    任务:依次访问数组中每个元素(使用for循环)
public class Example1e22
  public static void main(String args[]){
  int[]arr={1,2,3,4,5};//定义出数组中每个数字的值
  for(inti=0;i<arr.length;i++){
  System.out.println(arr[i]);
  	}
  }

}
 

关注点:
注意定义数组的格式int【】arr={元素值}
for的时候 for里面 的最高上限是i<arr.length(注意新的形式的表达是arr.length(0-4)
的形式而且在遍历的时候为了能灵活地考虑数组的最大值所以让数组的极限为arr。length是为了随时改变方便时应也就是说 绝对不可以人为的去改变这个)
2. 数组的最值)(人群中抓典型人物比较)
以最大值为例子,具体思路如下:先建立一个数组进行遍历然后再进行判断当数组值比max的值大的时候就输出 就行

public static void main(String args[]){
    int []arr1={1,3,2,4,5,2,6,7,3,56,3,1,};
    int max=arr1[0];
    for(int i=1;i<arr1.length;i++){
    if(arr1[]>max){
          max=arr1[];
      
       }
    
    }
 System.out.println("这个数组的最大值是:"+max)}

注意:
(1)数组的最大值中先基本定义数组里面的数值有哪些 int[] arr1={ };
(2) 然后再指定其中一个任意的值为最大值 最好是序号为0的
3 进行遍历 搜一遍在遍历过程中 挨个检查 当查到比最新的“最大值”大 就把那个最新的赋值给最大值 当筛选过一遍后跳出循环, 最后打印出来最大值
此时程序已经从头到尾筛选过一遍也就是说如果第一个就是程序的最大值 也会筛一遍 比较浪费程序的操作延迟

  1. 数组的排序(冒泡 排序)、

    定义所谓冒泡排序:像气泡一样排序不断比较数组中相邻两个元素大的上边去小的下边去
    主要算法实施如下:
    就是从第一个元素开始两个一组依次比较,如果前一个元素比后一个大泽交换位置否则不交换 这一样最后一个就是最大的
    第二部除了最后一个最大的再次进行比较 知道结束

代码实现:`

public static void main(String args[]){
   int []maopao={1,2,3,2,3,4,5,6,4,7,5,8,6,8,7,86,78,6,4};
      for(int i=0;i<maopao.length;i++){
           System.out.print("maopao[]="+maopao[]);}
           System.out.println("");
           for(int i=1;i<maopao.length;i++){   //外层循环控制该序列的轮数 3个数比较两次 4个数比较三次等
                for(int n=0;n<maopao.length-1;n++){
                   if (maopao[n]>maopao[n+1]){
                     int temp=maopao[n];
                     maopao[n]=maopao[n+1];
                     maopao[n+1]=temp;
                      }
               }
           }
           for(int i=0;i<maopao.length;i++){
             System.out.print("maopao[]="+maopao[]);} 

}

注意细节 :多练多练多练
三大部分:
第一部分 、甭管啥数组先遍历打印一遍看看情况
第二部分 正式的冒泡排序
1 、外层循环 比 比几轮 ? 十个数字 9次 然后最大值自动的跑到最后面
变成九个数字 8次 最大值最后面
2 内层循环 · 决定了第i轮的时候要比较的几个数字;是数组的最大值第几轮最后面的值定几个
第三部分
再次进行遍历打印结果最终值

感受 真的很难 弯子绕不过来的弯子

多维数组

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值