【测开技能】Java语言系列(十五)break和continue
正文
一、遍历
在之前分享了数组,有了数组就会有操作,普遍中使用比较多的就是数组的遍历。
如何遍历数组呢,其实很简单,直接用for循环就可以遍历。看一个遍历的例子
public class main {
public static void main(String[] args) {
int[] list = { 1, 14,19, 33, 99 };
for (int i=0; i<list.length; i++) {
int n = list[i];
System.out.println(n);
}
}
}
运行下代码,执行结果如下
为了实现for循环遍历,初始条件为i=0,因为索引总是从0开始,继续循环的条件为i<ns.length,因为当i=ns.length时,i已经超出了索引范围(索引范围是0 ~ ns.length-1),每次循环后,i++。
第二种方式是使用for each循环,直接迭代数组的每个元素:
public class main {
public static void main(String[] args) {
int[] list = { 1, 14,19, 33, 99 };
for (int i:
list) {
System.out.println(i);
}
}
}
最后结果输出
注意:在for (int n : ns)循环中,变量n直接拿到ns数组的元素,而不是索引,因此for each无法拿到元素的索引。根据需求去选择对应的循环方式即可。
二、排序
对数组进行排序是程序中非常基本的需求。常用的排序算法有冒泡排序、插入排序和快速排序等。
来用冒泡排序实现下从小到大排序。
整体的思路:
遍历循环元素,判断下一个比是否当前小,小就换位置
整体的代码如下
public class main {
public static void main(String[] args) {
int[] list = { 1, 14,19, 33, 99 };
for (int i = 0; i < list.length - 1; i++) {
for (int j = 0; j < list.length - i - 1; j++) {
if (list[j] > list[j+1]) {
// 交换ns[j]和ns[j+1]:
int tmp = list[j];
list[j] = list[j+1];
list[j+1] = tmp;
}
}
}
System.out.println(Arrays.toString(list));
}
}
那么如何实现倒序呢,其实很简单,就是在前面交换的时候,判断小,就拖动到下一位?
代码实现
public class main {
public static void main(String[] args) {
int[] list = { 1, 14,19, 33, 99 };
for (int i = 0; i < list.length - 1; i++) {
for (int j = 0; j < list.length - i - 1; j++) {
if (list[j] < list[j+1]) {
// 交换ns[j]和ns[j+1]:
int tmp = list[j];
list[j] = list[j+1];
list[j+1] = tmp;
}
}
}
System.out.println(Arrays.toString(list));
}
}
结果:
实现了设想的需求。在java中,已经给了一个可以简单排序的,使用如下,
public class main {
public static void main(String[] args) {
int[] list = { 1, 14,19, 33, 99 };
Arrays.sort(list);
System.out.println(Arrays.toString(list));
}
}
输出的结果是:
这是一个升序排序的。这样可以快速的实现数组的排序。
发现问题,解决问题。遇到问题,慢慢解决问题即可。