1 分支结构
1.1 if
1.1.1 概述
顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。
对于要先做判断再选择的问题就要使用分支结构。
1.1.2 形式
单分支
if(判断条件){满足条件的代码}
多分支
if(判断条件){
满足条件的代码
}else{
不满足条件的代码
}
嵌套分支
if(判断条件1){
代码1
}else if(判断条件2){
代码2
}else if(判断条件3){
代码3
}else if(判断条件4){
代码4
}else{
谁都不满足的代码
}
1.2 switch
1.2.1 概述
当一个case成立,从这个case向后穿透所有case,包括default。
直到程序结束或者遇到break程序才结束。
1.2.2 形式
switch(整型表达式){
case 1 : syso(1);break;
case 2 : syso(2);
case 3 : syso(3);
case 4 : syso(4);
case 5 : syso(5);
default : syso(0);
}
2 循环结构1
2.1 for
2.1.1 概述
循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。
它由循环体中的条件,判断继续执行某个功能还是退出循环。
根据判断条件,循环结构又可细分为先判断后执行的循环结构和先执行后判断的循环结构。
2.1.2 形式
for(循环的开始位置;循环的条件;更改条件){
循环体
}
2.2 嵌套for循环
2.2.1 概述
根据外层的条件,判断里层能否执行,如果能执行,就把里层代码都循环完毕后,再继续执行外层,继续判断。
2.2.2 形式
for(循环的开始位置 ; 循环的条件 ; 更改条件 ){//外循环
for(循环的开始位置 ; 循环的条件 ; 更改条件 ){//内循环
循环体
}
}
3 方法
3.1 概述
被命名的代码块 main(){ },
可以含参数可以不含参数,
可以提高代码的复用性。
3.2 形式
方法的修饰符 方法的返回值 方法的名字 ( 参数列表 ) { 代码/方法体 }
4 break和continue
4.1 形式
break: 中断当前循环,简单粗暴
continue:跳出本次循环,进入下一轮
5 循环结构2:while
先判断,再执行
5.1 格式
while(执行条件){
代码…
}
6 循环结构3:do-while
先执行,再判断
6.1 格式
do{
代码…
} while(执行条件);
7 数组
7.1 概念
数组Array,标志[ ]。
是用于储存多个相同类型数据的集合。
想要获取数组中的元素值,可以通过脚标(下标)来获取,下标是从0开始的。
7.2 创建数组
一般分为动态初始化和静态初始化
1、动态初始化 -- 不知道数组里具体要存啥数据
int[] a = new int[5];
2、静态初始化 -- 创建时就已经知道了数组里要放啥
int[] b = new int[]{1,2,3,4,5,6,7,8,9,10};
int[] c = {1,2,3,4,5,6,7,8,9,10};
7.3 数组的长度
length属性
数组一旦创建,长度不可变
允许0长度的数组
7.4 数组的遍历/循环
从头到尾,依次访问数组的位置。
7.4.1 形式
for(从下标为0的位置开始;下标<= 数组的长度-1;下标++){
循环体
}
8 二维数组
8.1 概念
标志是[ ][ ]。
存放数组的数组,也就是说数组里存的还是数组的数据形式。
8.2 创建二维数组
1、静态初始化
int[][] a= {{1,2},{3,4},{5,6},{8,9}};
–创建外部数组长度是4
–创建内部数组长度分别是2
–初始化数组,存入默认值
–修改数组中的默认值
–分配唯一的内存地址值,并交给引用型变量a保存
8.3 遍历二位数组
for(int i=0;i<a.length;i++){//遍历外部数组
for(int j=0;j<a[i].length;j++){//遍历内部数组
syso(a[i][j]);//根据外围数组下标和内部数组下标结合定位元素
a[i][j]=?;
}
}
9 三种循环的区别
三种循环都可以互相代替。
1、for -- 必须知道开始位置 + 知道循环的次数
for(开始位置;循环的判断条件;更改条件){
循环体;
}
2、while -- 先判断,再执行 -- 只需要知道条件
while(循环的判断条件){
循环体;
}
3、do...while -- 先执行,再判断 -- 只需要知道条件 -- 保证代码最少执行1次
do{
循环体;
}while(循环的判断条件);