1、循环结构的四要素
①初始化条件
②循环条件
③循环体
④迭代体
说明:通常情况下,循环结束都是因为②中循环条件返回false。
2、三种循环结构
2.1 for循环
for(①;②;④){
③
}
2.2 while循环结构
①
while(②){
③;
④;
}
注意:不要丢失迭代条件,丢了可能会有死循环。
for循环和while循环总结:
1、开发中,基本上我们会使用for、while中进行选择,实现循环结构。
2、for和while是可以相互转换的
区别是 初始化条件部分的作用范围不同。
3、避免出现死循环
2.3 do-while循环结构
①
do{
③;
④;
}while(②);
1、说明:do-while循环至少会执行一次
2、开发中,使用for和while更多一些,较少使用do-while
无线循环结构:while(true)或 for(;;)
方式一:当循环条件不满足是时退出
方式二:在循环体中,执行break
嵌套循环
嵌套循环:将一个循环结构A声明在另一个循环结构B的循环体中,就构成了嵌套循环
说明:内层循环结构遍历一次,只相当于外层循环体执行了一次
衡量代码的优劣
1、可读性
2、正确性
3、健壮性
4、高效率与低存储
break和continue
第三章数组
3.1数组的概念
1、数组的概述:是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理
2、数组相关的概念:
>数组名
>元素
>角标、下标、索引
>数组的长度
3、数组的特点:数组是有序排列的
4、数组属于引用数据类型的变量,数组的元素,既可以是基本数据类型,也可以是引用数据类型
5、创建数组对象会在内存中开辟一整块连续的空间
6、数组的长度一旦确定,就不能修改。
7、数组的分类:
①按照维数:一维数组、二维数组、。。。
②按照数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组
一维数组的使用
①一维数组的声明和初始化
②如何调用数组的指定位置的元素
③如何获取数组的长度
④如何遍历数组
⑤数组元素的默认初始化值
⑥数组的内存解析
package com.atguigu.java;
public class ArrayTest {
public static void main(String[] args) {
// 1.一维数组的声明和初始化
int num;
num = 10;
int id = 1001;
int[] ids;// 声明
// 1.1初始化
ids = new int[] { 1001, 1002, 1003, 1004 };
// 1.2动态初始化
String[] names = new String[5];
// 初始化一旦完成,其长度就确定了
// 2.如何调用指定位置的元素:通过角标
names[0] = "王明";
names[1] = "王鹤";
names[2] = "孙巨龙";
names[3] = "王宏志";
names[4] = "张瀚文";
// 3.如何获取数据的长度:
// 属性:length
System.out.println(names.length);
// 数组的遍历
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
/*
* //数组元素的默认初始化值 >数组元素是整型:0 >数组元素是浮点型:0.0 >数组元素是char型:'0'或 '\U0000'
* >数组元素是boolean型:false >数组元素是引用数据类型:null
*
*/
int[] arr1 = new int[5];
for (int i = 0; i < arr1.length; i++) {
System.out.println(arr1[i]);
}
System.out.println("*********************");
short[] arr2 = new short[5];
for (int i = 0; i < arr2.length; i++) {
System.out.println(arr2[i]);
}
System.out.println("************************");
float[] arr3 = new float[5];
for (int i = 0; i < arr3.length; i++) {
System.out.println(arr3[i]);
}
System.out.println("*********************");
boolean[] arr4 = new boolean[5];
System.out.println(arr4[0]);
System.out.println("*********************");
String[] arr5 = new String[5];
System.out.println(arr5[0]);
}
}
package com.atguigu.java;
/*
* 二位数组的使用:
* ①二维数组的声明和初始化
* ②如何调用数组的指定位置的元素
* ③如何获取数组的长度
* ④如何遍历数组
* ⑤数组元素的默认初始化值
* ⑥数组的内存解析
*
* */
///1、
public class ArrayTest02 {
int [][] arr1 = new int [][]{{1,2,3},{2,334,435,},{2344,45,7766,67,6}};
String [][] arr2 = new String[4][7];
String [][] arr3 = new String[5][];
//2.如何调用数组的指定位置的元素
System.out.println(arr1[0][1]);
System.out.println(arr2[1][1]);
arr3[1] = new String[4];
System.out.println(arr3[1][0]);
//3、获取数组的长度
System.out.println(arr4.length);
System.out.println(arr4[0].length);
System.out.println(arr4[0].length);
//4、如何让遍历二维数组
for(int i = 0 ; i< arr4.length;i++){
for(int i = 0;arr4[2].length;i++){
System.out.print(arr4[i][j] + “ ”);
}
}
}
二维数组的使用:
package com.atguigu.java;
/*
*二维数组的使用:
* ⑤ 数组元素的默认初始化值
*
* ⑥ 数组的内存解析
*
*/
public class ArrayTest03 {
public static void main(String[] args) {
int[][] arr = new int[4][3];
System.out.println(arr[0][0]);
System.out.println(arr[0]);
float[][] arr1 = new float[4][3];
System.out.println(arr1 [0]);//地址值
System.out.println(arr1 [0][0]);//0.0
String[][] arr2 = new String[4][2];
System.out.println(arr2[1]);//地址
System.out.println(arr2[1][1]);//null
double[][] arr3 = new double[4][];
System.out.println(arr3 [2]);//null
//System.out.println(arr3 [2][1]);//报错
}
}