1、顺序结构:自上而下执行
2、分支结构:swith、if
2.1、 switch语句结构
2.1.1、格式:
switch (表达式) {
case 1:
语句体1;
break;
case 2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
2. 1.2、执行流程:
先计算出表达式的值
然后和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束
最后如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉
注意:
case的之不可重复,只可以是字面量不可以是变量
表达式类型只能是byte、short、char、int类型
不写break就会有穿透性,直接执行下面的代码知道遇到break
2.1.3.、示例代码:
// 需求:根据输入的分数,判断学生成绩。
public class demo {
public static void main(String[] args) {
//键盘键入分数
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的分数:");
int score = sc.nextInt();
//case穿透
switch (score/10){
case 10:
case 9:
System.out.println("优秀");
break;
case 8:
System.out.println("良好");
break;
case 7:
case 6:
System.out.println("及格");
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
System.out.println("不及格");
break;
default:
System.out.println("输入错误!");
}
}
}
2.2、if语句结构
2.2.1、格式:
第一种格式
if(表达式){
执行代码;
}
第二种格式
if(表达式){
执行代码;
}else{
执行代码;
}
第三种格式
if(表达式1){
执行代码;
}else if(表达式2){
执行代码;
}else if(表达式3){
执行代码;
}
。。。。
else{
执行代码;
}
2. 2.2、执行流程:
先判断表达式的值
如果为true执行代码,为false就继续向下访问
最后如果都为false就执行else的代码
2.2.3.、示例代码:
int num = 10;
if (num > 0) {
System.out.println("num是正数");
} else if (num < 0) {
System.out.println("num是负数");
} else {
System.out.println("num是零");
}
3、循环结构:for、while
3.1、for循环结构:
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句, 当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形 成死循环
3.1.1、for循环格式:
for (初始化语句;条件判断语句;条件控制语句) {
循环体语句;
}
3.1.2、格式解释:
初始化语句: 用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样
条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去 循环体语句: 用于表示循环反复执行的内容,简单说就是循环反复执行的事情
条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去
3.1.3、执行流程:
1)执行初始化语句
2)执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
3)执行循环体语句
4)执行条件控制语句
5)回到2)继续
3.1.4示例代码:
public class Demo {
public static void main(String[] args) {
//需求:在控制台输出5次"HelloWorld"
//for循环实现
for(int i=1; i<=5; i++) {
System.out.println("HelloWorld");
}
}
}
3.2、增强for循环结构:
专门用来遍历数组和集合的。它的内部原理其实是一个 Iterator 迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。
3.2.1、格式:
for(元素类型 元素名(自己取的变量名称):集合名或数组名){
访问元素
}
3.2.2、示例代码:
import java.util.ArrayList;
public class Test06 {
public static void main(String[] args) {
//增强for循环 for each 遍历 数组或集合
int[] arrInt = new int[]{60, 43, 23, 88};
System.out.println("普通for循环 遍历数组");
for (int i = 0; i < arrInt.length; i++) {
System.out.println(arrInt[i]);
}
// 增强for循环
/**
* for(类型 变量名称: 集合或数组名称){
* 变量名称 访问集合
* }
*/
System.out.println("增强for循环 遍历int[]");
for (int j : arrInt) {
System.out.println(j);
}
System.out.println("增强for循环 遍历String[]");
String[] strs = {"makyikt", "aaa", "bbb"};
for (String str : strs) {
System.out.println(str);
}
System.out.println("增强for循环 遍历ArrayList<String>");
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("mayikt01");
arrayList.add("mayikt02");
arrayList.add("mayikt03");
for (String str : arrayList) {
System.out.println(str);
}
}
}
3.3、while循环
3.3.1、while格式:
初始化语句;
while (条件判断语句) {
循环体语句;
条件控制语句;
}
3.3.2、执行流程:
1)执行初始化语句
2)执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
3)执行循环体语句
4)执行条件控制语句
5)回到2)继续
3.3.3、示例代码:
public class Demo {
public static void main(String[] args) {
//需求:在控制台输出5次"HelloWorld"
//for循环实现
for(int i=1; i<=5; i++) {
System.out.println("HelloWorld");
}
System.out.println("--------");
//while循环实现
int j = 1;
while(j<=5) {
System.out.println("HelloWorld");
j++;
}
}
}
3.4、do…while循环结构
3.4.1、do…while格式
初始化语句;
do {
循环体语句;
条件控制语句;
}while(条件判断语句);
3.4.2、执行流程:
1)执行初始化语句
2)执行循环体语句
3)执行条件控制语句
4)执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
5)回到2)继续
3.4.3、示例代码:
public class Demo {
public static void main(String[] args) {
//需求:在控制台输出5次"HelloWorld"
//for循环实现
for(int i=1; i<=5; i++) {
System.out.println("HelloWorld");
}
System.out.println("--------");
//do...while循环实现
int j = 1;
do {
System.out.println("HelloWorld");
j++;
}while(j<=5);
}
}
4、三种循环的区别
4.1、三种循环的区别
for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
4.2、for循环和while的区别
条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
5、死循环的三种格式
for( ; ; ){}
while(true){}
do {} while(true);
6、跳转关键字
break:跳出并结束当前循环(找数据然后结束),跳出、结束循环
continue:跳过本次循环,继续下次循环
注意: continue只能在循环中进行使用!
7、循环嵌套
循环嵌套:在循环中,继续定义循环
7.1、示例代码:
public static void main(String[] args) {
//外循环控制小时的范围,内循环控制分钟的范围
for (int hour = 0; hour < 24; hour++) {
for (int minute = 0; minute < 60; minute++) {
System.out.println(hour + "时" + minute + "分");
}
System.out.println("--------");
}
}
6.2、解释:
即外循环执行一次,内循环执行一圈。