顺序结构
顺序结构:系统默认自上而下一行一行地执行该程序;

选择结构
(1)if语句

说明:
if、else if、else后面的大括号都可以省略,默认执行第一句,只是不建议省略,可读性差;
使用最多的条件分支结构;
if语句是根据条件判断之后再做处理的一种语法结构,用来描述一个“二岔路口”,只能选择其中一条路来继续走。



(2)while语句

说明:
1.case 常量值不能重复
类型为 char、byte、 short 或 int 的常量表达式;枚举常量;
从 Java SE 7 开始, case 标签还可以是字符串字面量
2.switch判断 的变量类型
只能是 int或char、short、byte、枚举
String(jdk1.7以后)
只能是 java.lang.String 类型
不能是 StringBuffer 或 StringBuilder 这两种字符串的类型
应与case后的常量类型一致,或者可以自动转成可以相互比较的类型
3、default
表示“默认”,即其他情况都不满足
default 后要紧跟冒号,default 块和 case 块的先后顺序可以变动,不会影响程序执行结果
通常,default 块放在末尾,也可以省略不写
4、break
表示“停止”,即跳出当前结构
用来执行完一个case分支后使程序跳出Switch语句
5、如果在 case 分支语句的末尾没有 break 语句,有可能触发多个 case 分支。这种情况相当危险,常常会引发错误。因此在程序中不建议使用 switch 语句。
如果你喜欢 switch 语句,编译代码时可以考虑加上 -Xlint:fallthrough 选项,如下所示:
javac -Xlint:fallthrough
这样一来,如果某个分支最后缺少一个 break 语句,编译器就会给出一个警告消息;

比较
if 语句使用布尔表达式或布尔值作为分支条件来进行分支控制;
switch 语句则用于对多个整型值进行匹配,从而实现分支控制;
能用switch的,肯定能用if,反之,能用if的,不一定能用switch;
如果判断的具体数值不多,而且符合 byte、 short 、 int、 char, enum[枚举], String 这 6 种类型,建议使用 swtich 语句;
其他情况:对区间判断,对结果为 boolean 类型判断,建议使用if语句。
循环结构
介绍
循环语句能够使程序代码重复执行,适用于需要重复一段代码直到满足特定条件为止的情况;
Java 中采用的循环语句与C语言中的循环语句相似,主要有 while、do-while 和 for;
Java 5 之后推出了 for-each 循环语句,for-each 循环是 for 循环的变形,它是专门为集合遍历而设计的;

(1)while


(2)do-while


(3)for


说明:
通常使用在知道循环次数的循环中,是应用最广泛、功能最强的一种循环语句;
三个表达式 可以省略,但两个分号必不可少;当三者均为空的时候,相当于一个无限循环。
在 for 循环语句中,无论缺少哪部分条件表达式,都可以在程序的其他位置补充,从而保持 for 循环语句的完整性,使循环正常进行;
表达式1可以有多个变量声明,但必须是同一类型,但用逗号隔开;
表达式3可以有多个变量更新,用逗号隔开;
(4)增强for

说明:
foreach 循环语句是 for 语句的特殊简化版本(Java 1.5 的新特征之一),主要用于执行遍历功能的循环;它无须循环条件,无须循环迭代语句,这些部分都由系统来完成;
foreach 循环自动迭代数组的每个元素,当每个元素都被迭代一次后,foreach 循环自动结束;
通常不要对循环变量进行赋值,虽然这种赋值在语法上是允许的,但没有太大的实际意义,而且极容易引起错误;
foreach 中的循环变量相当于一个临时变量,系统会把数组元素依次赋给这个临时变量,而这个临时变量并不是数组元素,它只是保存了数组元素的值。因此,如果希望改变数组元素的值,则不能使用这种 foreach 循环;
(5)嵌套循环

说明:
嵌套循环是一个循环中又嵌套了另一个完整的循环结构,即把内层循环当成外层循环的循环体;
三种循环中,都可以嵌套另外一种任意的循环结构;
假设外层循环的循环次数为 n 次,内层循环的循环次数为 m 次,那么内层循环的循环体实际上需要执行 n×m 次;
如果外层循环的循环条件允许,则开始执行外层循环的循环体
当内层循环执行结束,且外层循环的循环体执行结束时,则再次计算外层循环的循环条件,决定是否再次开始执行外层循环的循环体
执行特点
先执行外层循环,然后执行内层循环
比较
相同点
都有循环四要素
都能实现任意形式的循环结构;
不同点
执行顺序不同,for、while先判断后执行do while先执行后判断
执行效率不同, do while效率最高
执行效果不同, do while 无条件执行一次,而while和for 如果第一次条件不成立,执行0次
语法不同

其他
跳转语句

public class GotoDemo {
public static void main(String[] args) {
label: for (int i = 0; i < 10; i++) {
for (int j = 0; j < 8; j++) {
System.out.println(j);
if (j % 2 != 0) {
break label;
}
}
}
}
}
被加标签的代码块必须包围 break 语句,但是它不需要直接包围 break 的块。
也就是说,可以使用一个加标签的 break 语句来退出一系列的嵌套块,但是不能使用 break 语句将控制权传递到不包含 break 语句的代码块;
标签语句必须和循环匹配使用,使用时书写在对应的循环语句的上面,标签语句以冒号结束。如果需要中断标签语句对应的循环,可以采用 break 后面跟标签名的方式
本文详细介绍了Java编程中的顺序结构、选择结构(包括if语句和switch语句)、循环结构(如while、do-while和for循环,以及for-each和嵌套循环),并讨论了跳转语句和标签语句的使用。





