java基础: Day04
1. break和continue
-
break使用场景
①switch中:匹配到某个case时,跳出整个switch结构
②循环【1层】:跳出当前循环体,执行整个循环结构后面的语句
-
continue
只能用于循环中,结束当次循环,即不执行当次循环,continue后面的语句,继续下一次循环
2. 程序调试debug功能
遇到问题解决不了,多使用debug调试功能
怎么用
-
设置断点
-
使用断点运行
-
跟踪代码,观察变量的变化
3. 多重循环
Scanner sc = new Scanner(System.in);
System.out.println("请输入n:");
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
for (int j = 0; j < 2*n-1; j++) {
if (j < n-1-i || j>n-1+i){
System.out.print(" ");
}else {
System.out.print("*");
}
}
System.out.println();
}
4. 数组
4.1数组是什么
-
数组是内存中的一块连续存储空间
-
存放的是多个相同数据类型的值 ----基本数据类型/引用数据类型
-
数组长度一旦定义无法改变,只能通过cpoy和copyof方法重新生成数组
-
下标从0开始,最大值为length-1
-
数组的length是属性,集合和字符串的length()是方法
4.2 数组怎么用
-
在内存中声明一个数组: int[] scores数组名;
-
为数组分配长度; scores=new int[3];
-
为数组元素赋值: scores[0] = 20;
动态初始化: int[] scores2 = new int[3] ,确定长度,但是不确定固定的值
静态初始化: int[] aa = {12,33} 直接赋值
4.3 数组的遍历
//遍历方式1: 普通for循环
//特点:有下标,可以改变数组的值
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
//遍历方式2: 增强for循环/高级for循环
//特点:没有下标,不可以改变数组的值,本质是取一个变量保存每个索引的值
for(int value :arr){
System.out.println(value);
}
4.4最值
int max = scores[0];
for(int i = 0; i < scores.length; i++){
if(scores[i] >= max){
max = scores[i];
}
System.out.println("成绩最高分为:"+max);
}
4.5 标记思想
System.out.println("打烙印:标记思想");
//todo 声明一个变量,用于标记,一般用boolean类型,用其他类型也可以,目的就是改变标记值
boolean isExists = false; //假定不存在
for (int i = start-1; i < end-1; i++) {
if(searchNum == scores[i]) {
//todo 可以统计数组中是否有重复数字,即它重复的个数
// System.out.println("找到了"+searchNum); //指向直到有没有,不关心个数
isExists = true;
break;
}
}
//后续就根据标记处理
if(isExists) {
System.out.println("找到了"+searchNum);
} else {
System.out.println("找不到"+searchNum);
}
4.6 常见异常
数组中最常见的异常: ArrayIndexOutOfBoundsException
数组索引越界异常