程序控制结构
一、顺序控制
- 程序从上到下逐行地执行,中间没有任何判断和跳转。
二、分支控制
- 让程序有选择的执行
- 单分支
- 双分支
- 多分支
- 嵌套分支
- switch分支结构
- 表达式数据类型,应和case后的常量类型一致,或者是可以自动转成可以相互比较的类型,比如输入的是字符,而常量是int
- switch(表达式)中表达式的返回值必须是:(byte,short,int,char,enum,String)
- case子句中的值必须是常量,而不能是变量
- default子句是可选的,当没有匹配的case时,执行default
- break语句用来在执行完一个case分支后使程序跳出switch语句块;
- 如果没有写break,程序会顺序执行到switch结尾,除非遇到break;
- 在java中,只要有值返回,就是一个表达式
- switch和if的比较
- 对区间判断,对结果为boolean类型判断,使用if
三、循环控制
- for循环控制
- 循环条件是返回一个布尔值的表达式
- for(;循环判断条件;)中的初始化和变量迭代可以写到其它地方,但是两边的分号不能省略
- 循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开,循环变量迭代也可以有多条变量迭代语句,中间用逗号隔开
- 编程思想
- 化繁为简
- 先死后活
- while循环控制
- do-while循环控制
- 多重循环控制
- 金字塔案例
-
化繁为简
- 先打印一个矩形
- *****
- *****
- *****
- *****
- *****
- 打印半个金字塔
- * 1层 1*
- ** 2层 2*
- *** 3层 3*
- **** 4层 4*
- ***** 5层 5*
- 打印整个金字塔
public class Exercice { public static void main(String[] args) { for(int i = 0; i < 5; i++) { for(int j = 0; j < 5 - i - 1; j++ ){ System.out.print(" "); } for(int j = 0; j < 2 * i + 1; j++) { System.out.print("*"); } System.out.println(); } } }
- 打印空心的金字塔(当前行的第一个位置和最后一个位置是*)
- *
- * *
- …
- 层数做成变量
public class Exercice { public static void main(String[] args) { System.out.println(" * "); for(int i = 0; i < 3; i++) { for(int j = 0; j < 3 - i; j++) { System.out.print(" "); } System.out.print("*"); for(int j = 0; j < 2 * i + 1; j++) { System.out.print(" "); } System.out.print("*"); System.out.println(); } System.out.println("*********"); } }
- 先打印一个矩形
-
- 金字塔案例
四、跳转控制语句
- break
- 用于终止某个语句块的执行
- 一般使用在switch或者循环中
- continue
- 用于结束本次循环,继续执行下一次循环
- return
- 使用在方法,表示跳出所在的方法
- 写在main方法,退出程序