一、循环语句
1、while循环
- 先判断再循环
while(循环条件){
循环体...;
}
2、do while循环
- 先执行一次,再判断是否循环
do{
循环体...;
}while(循环条件);
3、for循环
for(初始化参数; 循环条件; 更新循环变量){
循环体...;
}
- break
中断当前循环标号的使用
可以给语句块加标号赋予它们名称,标号位于语句之前。 标号只能被continue和break引用。public static void main(String[] args) { loopLabel: for (int i = 1; i <= 5; i++) { switch (i) { case 3: System.out.println("累死了 3333"); break loopLabel; case 4: System.out.println("累死了 4444"); break; } System.out.println("跑了" + i + "圈"); } System.out.println("比赛结束"); }
- continue
跳过当前循环体中剩余的语句而强制执行下一次循环
二、数组
1、申明数组
// 动态初始化
int[] arr;
int[] arr = new int[5];
int[] arr = new int[]{1,2,3,4,5};
// 静态初始化
int[] arr = {1,2,3,4,5};
2、 数组大小(扩容)
不能调整数组大小,但可以用相同的引用变量来引用一个全新的数组。
public static void main(String[] args) {
String[] stuAy = {"张三", "李四", "王五"};
String[] stuAy1 = new String[stuAy.length + 1];
for (int i = 0; i < stuAy.length; i++) {
stuAy1[i] = stuAy[i];
}
// 使用系统的数组拷贝
// System.arraycopy(stuAy, 0, stuAy1, 0, stuAy.length);
stuAy1[stuAy.length] = "赵六";
stuAy = stuAy1;
System.out.println(Arrays.toString(stuAy));
// 法二:
String[] stu = {"张三", "李四", "王五"};
// 使用 java.util.Arrays 包下的数组拷贝
stu = Arrays.copyOf(stu, stu.length + 1);
stu[stu.length - 1] = "赵六";
System.out.println(Arrays.toString(stu));
}
补充 地址指向问题
int[] arr1 = new int[]{10,20,30};
int[] arr2 = new int[]{1,2,3,4,5,6};
arr1 = arr2;
// 此时arr1和arr2指向同一个地址
3、调用第三方API
org.apache.commons.lang3.ArrayUtils
import org.apache.commons.lang3.ArrayUtils;
import java.util.Arrays;
/**
* @author: chuanyue
* @Date: 2023/04/13/10:08
*/
public class Test05 {
public static void main(String[] args) {
int[] scoreAy = {100, 90, 80, 77};
System.out.println("初始数组:" + Arrays.toString(scoreAy));
// 1. 向数组中添加一个元素
scoreAy = ArrayUtils.add(scoreAy, 99);
System.out.println("添加元素后的数组:" + Arrays.toString(scoreAy));
// 2. 从数组中删除 索引为0的元素
scoreAy = ArrayUtils.remove(scoreAy, 0);
System.out.println("删除第一个元素后的数组:" + Arrays.toString(scoreAy));
// 3. 将数组元素反转
ArrayUtils.reverse(scoreAy);
System.out.println("反转元素后的数组:" + Arrays.toString(scoreAy));
}
}