与任何程序设计语言一样,Java 使用条件语句和循环结构确定控制流程。
块的作用域
块(复合语句)是指由一对花括号括起来的若干条简单的 Java 语句,块确定了变量的作用域。一个块可以嵌套在另一个块中。但是,不能在嵌套的两个块中声明同名的变量。
条件语句
在 Java 中,if 语句是一个判断结构,它会准确地检测判断条件成立与否,决定是否要执行后面的语句。条件语句的格式为:
当程序中存在含有分支的判断语句时,就可以用 if…else 语句处理。当判断条件成立,即执行 if 语句主体;判断条件不成立时,则会执行 else 后面的语句主体。else 子句与最邻近的 if 构成一组。if….else 语句格式如下:
如果需要在 if….else 里判断多个条件时,就需要 if….else if….else 语句了,格式如下:
switch 语句
要在许多的选择条件中找到并执行其中一个符合判断条件的语句时,除了可以使用 if…else 不断地判断之外,也可以使用另一种更方便的方式即多重选择—— switch 语句。
switch 语句执行的流程如下:
- switch 语句计算括号中表达式的结果是数字,字符或是枚举。
- 根据表达式的值检测是否符合 case 后面的选择值,若是所有 case 的选择不符合,则执行 default 所包含的语句,执行完毕即离开 switch 语句。
- 如果某个 case 的选择值符合表达式的结果,就会执行该 case 所包含的语句,一直遇到 break 语句后才离开switch语句。
- 若是没有在 case 语句结尾处加上 break 语句,则会一直执行到 switch 语句的尾端才离开 switch 语句。break 语句是跳出语句。
- 若是没有定义 default 该执行的语句,则什么也不会执行,直接离开 switch 语句。
while 循环语句
while 是循环语句,也是条件判断语句。当事先不知道循环该执行行多少次的时候,就要用到 while 循环。while 循环的格式如下:
while 循环执行的流程:
- 第一次进入while循环前,必须先为循环控制变量(或表达式)赋起始值。
- 根据判断条件的内容决定是否要继续执行循环,如果条件判断是真(true),继续执行循环主体;若条件判断值为假(false),则跳出循环执行其他语句。
- 执行完循环主体内的语句后,重新为循环控制变量(或表达式)赋值(增加或减少),由于while循环不会自动更改循环控制变量(或表达式)的内容,所以在 while 循环中为循环控制变量赋值的工作要由设计者自己来做,完成后再回到步骤 2 重新判断是否继续执行循环。
do…while 循环
do…while 循环也是用于未知循环执行次数的时候,而 while 循环与 do … while 循环最大的不同是:while 语句会先测试判断条件的真假,再判断是否执行循环主体,而 do …while 循环则是“先做再说”,每次都是先执行一次循环主体,然后再测试判断条件的真假,所以无论循环成立的条件是什么,使用 do … while 循环时,至少都会执行一次循环主体,语句格式:
do …. While循环执行的流程:
- 进入 do … while 循环前,要先为循环控制变量(或表达式)赋期起始值。
- 直接执行循环主体,循环主体执行完毕,才开始根据判断条件的内容决定是否继续执行循环,条件判断值为真(true)时,继续执行循环主体;条件判断值为假(false)时,则跳出循环,执行其他语句。
- 执行完循环主体内的语句后,重新为循环控制变量(或表达式)赋值(增加或减少),由于 do … while 循环和 while 循环一样,不会自动更改循环控制变量(或表达式)的内容,所以在 do …. While 循环中赋值循环控制变量的工作要由自己来做,然后再回到步骤 2 重新判断是否继续执行循环。
for 循环
对于 while 和 do…while 两种循环来讲,操作时并不一定要明确的知道循环的次数,而如果开发者已经明确知道了循环的次数的话,那么可以使用另外一种循环语句—— for 循环。格式如下:
for 循环执行的流程:
- 第一次进行 for 循环时,要为循环控制变量赋起始值。
- 根据判断条件的内容检查是否要继续执行循环,当判断条件值为真(true)时,继续执行循环主体内的语句;判断条件值为(false)时,则会跳出循环,执行其他语句。
- 执行完循环主体内的语句后,循环控制变量会根据增减量的要求更改循环控制变量的值,然后再回到步骤(2)重新判断是否继续执行循环。
中断控制流程语句
- break 语句:
break 语句可以强迫程序中断循环,当程序执行到 break 语句时,即会离开循环,继续执行循环外的下一个语句,如果 break 语句出现在嵌套循环中的内循环,则 break 语句只会跳出当前层的循环。带标签的 break 语句会跳转到标签的语句块末,标签必须放在希望跳出的最外层循环之前,并且必须紧跟一个冒号。 - continue 语句:
continue 语句可以强迫程序跳到循环的起初处,当程序运行到 continue 语句时,会停止运行剩余的循环主体,而是回到循环的开始处继续运行。如果将 continue 语句用于 for 循环中,就可以跳到 for 循环的“更新”部分。还有一种带标签的 continue 语句,将跳到与标签匹配的循环首部。