一、流程控制与数组

一、流程控制——结束循环的几种方式

1.break

break可以结束当前循环。

for(int i = 0; i<= 100;i++){
    。。。。
    if(i = 10) {
        break;
   }
}

这个for循环就结束了,不再循环。

或者配合标号使用 ,例如:

outer:
for(......;......;......){
    for(....;.....;.....){
            if(......){
                break outer;
        }
    }
}

这样的操作就是结束outer下面这个双重循环体。(注意标号一定要写在循环体前面。)

2.continue

continue可以结束本次循环,忽略continue下面的语句,开启下一次循环。
例如:

for(int i = 0; i<= 100;i++){
    。。。。
    if(i = 10) {
        continueint x = 0;//语句1
        ………………
   }

语句1和下面的语句是执行不到的

continue也可以配合`outer使用

3.return

return的作用其实是结束一个方法。
无论return的位置在多少层循环里面,只要出现了return;整个方法结束。

二、数组

1.基本概念

数组是引用型数据类型。定义数组的时候是不能直接指定数组长度的。(因为定义数组时相当于在栈中开辟了一个空间给数组名,数组元素的存贮位置在堆中)
数组有两种初始化方法:静态初始化和动态初始化
静态初始化:int[] arr = new int[]{1,2,3};
动态初始化:int[] a = new int[20];(动态初始化中,这样程序员是没有对数组元素赋值的,而是系统给数组赋值。)

整型 系统赋值为 0
浮点型 系统赋值为 0.0
字符型 系统赋值为 ‘\u0000’
布尔型 系统赋值为 false
引用型 系统赋值为 null(null并不是不存在的值。)

注意:
int[] arr = new int[20];
左边是定义数组,右边是对数组的动态初始化,并不是在定义的同时定义了数组的长度。也就是说,int[2] arr;的写法是错误的。
数组索引越界异常:
java.lang.ArrayIndexOutOfBoundsException:N
N是程序员试图访问的数组下标。

数组有length属性。arr.length可以得到数组的长度。

Java5以后提供foreach循环,可以遍历数组或者集合中的元素格式为:

for(数据类型 变量名 : 数组/集合名称){
    System.out.printf(变量名);
}

需要注意的是:foreach循环并不能改变数组或者集合元素的值,所以不要使用foreach循环来给数组或者集合的元素进行赋值。

2.内存中的数组

数组的变量名存在方法栈中,方法结束时发生销毁。数组元素存储在堆内存中(运行时数据区)运行结束不会被销毁。
Java的系统垃圾回收器会在一个变量没有任何引用的时候回收他。手动可以
变量 = null;
使系统回收
存放在栈中的数组名就相当于一个指针,指向了堆内存中的数组元素(个人认为可以这么理解,在栈中存放的数组名,其实是堆内存中第一个数组元素的地址。)

数组的长度一旦确定了就不会在发生改变了。
arr1 = arr2;
从表面上看似乎这样的操作会 使arr1的长度变得和arr2一样,但这个操作的本质是把arr2指向的地址赋值给arr1数组。而arr1数组的元素则不再有引用了。此时arr1和arr2都指向了 arr2的数组元素。
因此数组元素是不会变化的。

3.java中的二维数组

从内存中数组的存贮情况来看,java的二维数组其实是一维数组中存放的引用类型的一维数组。所以从这个角度上看Java是没有二维数组的。其余三维数组、多维数组同理。

4.Java8的增强工具类Arrays

包含了许多有用的方法。。。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值