3.28-29学习笔记——JAVA控制流程和数组

1. JAVA控制流程

这部分和C++基本上一样,分支结构可以用if、else,也保留了switch语句,语法和C++一样;循环结构也保留了C++的while、do-while和for循环,不过在java1.5版本增加了for each语句,一般用于访问数组的每一个元素,调用方法是:

for(type element : type[] array)

作用类似于Python的

for element in array:

依然可以用break和continue语句来跳出循环(或代码块),但JAVA提供了一种带标签的break语句,功能上有点类似于C++的goto语句,一般用于直接跳出最外层循环(或是跳出到想要跳出的循环外层),用法是在希望跳出的循环之前加上标签,格式如同C++(标识符 : ),然后调用(break 标签)语句即可。

2. JAVA数组

(1)数组的声明和初始化

JAVA中数组标准的声明方法是使用new运算符:

int[] a = new int[100];

tip:也可以沿用C++风格的int a[],但是提倡使用JAVA风格的int[] a,因为这样就把类型名int[]和变量名分开了。

沿用了C++风格的初始化,如:

int[] a = {1,2,3,4,5};

使用array.length可以得到数组的长度,如以上数组,a.length的值为5。

(2)数组的拷贝

可以直接把一个数组变量赋值(=)给另一个数组变量,但此时它们指向(引用)同一个数组,若要将一个数组的值复制到另一个数组,可以调用Arrays.copyOf或Arrays.copyOfRange方法(后者带下标上下限)。

(3)数组排序

可以直接调用Arrays.sort方法,这个方法使用了优化的快速排序算法。

(4)一些常用的Arrays类的方法(java.util.Arrays)

Arrays.toString(数组变量):将数组转化为字符串,并加上方括号和分隔符,常用于输出整个数组。

Arrays.deepToString(多维数组变量):将多维数组转化为字符串。

Arrays.binarySearch(数组变量,查找值)或Arrays.binarySearch(数组变量,下限,上限,查找值):

使用二分查找法查找指定值,若成功则返回其下标,若失败则返回一个负数r,-r-1是保持数组有序该值应该插入的位置。

Arrays.fill(数组变量,值):将数组的所有元素值设置为指定值。

Arrays.equals(数组变量1,数组变量2):判断两个数组是否长度以及下标相同的元素都相等。

tip:关于JAVA多维数组,实际上是一维数组的嵌套,其中每个数组元素的长度可以不相等,元素类型也可以不同(也就是广义表)。

补充:

Math类中的random方法,Math.random()会产生一个[0 , 1) 的随机数,使用

(int) (n * Math.random);

即可从0~n-1抽取一个随机数(很实用的功能)。

math包中的大数值类(注意是java.math包,区别于java.lang.Math类):

常用的有BigInteger(大整数)和BigDecimal(大浮点数)。



猜你喜欢

转载自blog.csdn.net/setsuna_ogiso/article/details/79751201