程序控制简述
绝大多数的编程语言 程序都是自上而下 顺序执行 其中可以穿插一些程序控制流程而Java语言的程序控制流程大致分为如下情况
- 选择结构
- 单分支
if (condition) { // 执行代码块 }
- 双分支
if (condition) { // 执行代码块一 } else { // 执行代码块二 }
- 多分支
- if … else if … else …
if (condition) { // 执行代码块一 } else if (condition) { // 执行代码块二 } else { // 执行代码块三 }
- switch 语句块
switch (key) { case value: // 执行代码块一 break; case value2: // 执行代码块二 break; default: // 执行代码块三 break; }
- if … else if … else …
- 单分支
- 循环结构
- for循环
for (int i = 0; i < args.length; i++) { // 循环执行代码块 }
- while循环
while (condition) { // 循环执行代码块 }
- do while循环
do { // 循环执行代码块 } while (condition);
- for循环
下面详细介绍一下这些程序控制流程
Java选择结构
- 单分支
单分支语句 if else 结构
其中 condition 为条件语句 当 condition 的条件成立的时候if (condition) { // 执行代码块 }
才会去执行 if 内的代码块 否则不执行
可以看到当条件为 false 时 没有打印 if 内的 Helllo World
反之 当条件为 true 时 打印了 if 内的 Hello World
- 双分支
双分支语句 if else 结构
当 condition 条件成立的时候 才会去执行 代码块一if (condition) { // 执行代码块一 } else { // 执行代码块二 }
否则执行代码块二
可以看到 当条件为 true 时 只打印了 Hello World
而当条件为 false 时 只打印了 你好 世界
- 多分支
多分支分有两种情况
if … else if … else …
switch 结构下面分别解释这两种结构
– if … else if … else …
if (condition) {
// 执行代码块一
} else if (condition) {
// 执行代码块二
} else if (condition) {
// 执行代码块三
} else {
// 执行代码块四
}
当 if 的第一个 condition 成立时 执行代码块一
如果此时 condition 不成立 则进入第二个判断
当 if 的第二个 condition 成立时 执行代码块二
如果此时 if 的第二个 condition 依然不成立 则进入第三个判断
依次类推 不断判断 直到 condition 条件成立为止
如果 condition 一直无法成立 则最终执行 else 内的代码块
值得注意的是 当 if 遇到第一次的条件成立时 则不再对后续 condition 进行判断
可以看到 第三并没有被打印出来 只是出现了代码块二
– switch
switch (key) {
case value:
// 执行代码块一
break;
case value2:
// 执行代码块二
break;
default:
// 执行代码块三
break;
}
对于 switch 而言 key是需要传入的一个参数
然后 key 不断的比对 value 值 当 key 匹配上 value 时
则执行相应代码块
值得注意的是 key 会依次匹配 value
当匹配上第一个 value 时
则不再进行匹配 只从匹配上的 value case 处 开始执行代码块
直至遇到 break 才停止 跳出 switch 语句
也就是说 如果 key 匹配上了某个 value 而这个value 没有对应的 break
那么程序的代码块会一直执行到下一个 value 的代码块 直到遇见 break 为止
再有就是 当全部的 value 没有匹配上 key 时
默认执行 default 的代码块
可以看到 当 key 匹配上 value 2 的时候开始执行代码块
因为没有遇到 break 所以继续执行代码块 直到遇到 break 为止
Java循环结构
-
for 循环
for (int i = 0; i < args.length; i++) { // 循环执行代码块 }
for 循环分四个部分
第一个部分是 int i = 0; 这是循环条件初始化
第二个部分是 i < args.length; 这是循环终止条件
第三个部分是 i ++ ; 这是循环条件的变化情况
第四个部分是 循环体
当循环条件初始化以后 开始执行循环体
循环体每执行一次 循环条件就根据变化情况变化一次
直到循环条件满足循环终止条件 退出循环
如果想要执行死循环
只需要使循环终止条件永远也不可能成立即可
或者使一二三部分保持空白 即:for ( ; ; ) { // 代码循环体 }
-
while 循环
while (condition) { // 循环执行代码块 }
循环所需要的四个条件
对于 while 来说
循环条件初始化需要设置 while 外
循环条件自然就是 condition
而循环条件变化情况则需要写入循环体内 -
do while 循环
do { // 循环执行代码块 } while (condition);
循环所需要的四个条件
对于 do while 来说
循环条件初始化需要设置在 while 外
循环条件自然是 condition
而循环条件的变化情况依然需要写入到循环体内
不同于 while 型循环的是
do while 在执行循环前 会先执行一次循环体 -
break和continue关键字
- break关键字
break关键字用于终止循环
可以看到 当循环执行到 i == 5 的时候 进入break 循环结束
- continue关键字
continue关键字用于跳过本次循环 执行下次循环
- break关键字
可以看到 当循环执行到 i == 2 的时候 跳过打印 2 但是不影响之后的循环执行