06.程序的控制流
程序的控制流
java中三种控制结构:顺序结构、循环结构、选择结构
Java中包括三种循环结构:while
循环、do/while
循环、for
循环
两种选择结构: if结构、switch结构
while
while( 布尔表达式 ) {
//循环内容
} //while格式
do while
do {
//循环内容
} while( 布尔表达式 );
//while格式
for
for(初始化; 布尔表达式; 更新循环控制变量) {
//循环内容
}
- 执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句
- 检测布尔表达式的值。如果为true,循环体被执行。如果为false,循环终止
- 执行循环体后面的语句
- 执行一次循环后,更新循环控制变量
- 再次检测布尔表达式,循环执行上面的过程
-
String[] sentences = {"hello", "thank u", "thank u very much"}; for (int index = 0; index < sentences.length; index++) { System.out.println(sentences[index]); }
我们可以采用如下方式进行简化:
String[] sentences = {"hello", "thank u", "thank u very much"}; for (String sentence : sentences) { System.out.println(sentence); }//叫什么来着忘了
whitch
int sum = 0;
for(int i = 0; i <= 100; i++) {
int result = i % 2;
switch (result) {
case 0:
sum += i;
break;
// case 1:
// break;
default:
System.out.println("worinima");
}
}
switch
语句中的变量类型只能为String
、byte
、short
、int
或者char
。
case
语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
switch
语句可以包含一个default
分支,该分支必须是switch
语句的最后一个分支。default
在没有case
语句的值和变量值相等的时候执行。default
分支不需要break
语句。
default就是当变量的取值不在上面任何一个case的情况下,语句要做处理,其实也是一种case,只不过就是指“除了指定的几个case以外的其他情况”,如上就会出现50个worinima。
break
break也可以以跳出当前循环。
continue
continue
用于在循环控制结构中,让程序立刻跳转到下一次循环:
1。在for
循环中,continue
语句使程序立即跳转到控制变量更新语句。
2.在while
或者do/while
循环中,程序立即跳转到布尔表达式的判断语句。
int sum = 0;
for(int i = 0; i <= 100; i++) {
if (i % 2 == 1) {
continue; // 如果是奇数,则立刻跳转到下一次循环,不做累加
}
sum += i;
} //累加到一百的continue形式
return
return
也表示无条件分支,它包含两种用途:
return
后面跟一个值或者变量,指定一个方法的返回值- 单独的
return;
语句,后面不跟任何值或者变量,表示退出当前方法1 int sum = 0; 2 for(int i = 1; i <= 100; i++) { 3 if (i % 4 == 0) { 4 break/return; // 如果是奇数,则立刻跳转到下一次循环,不做累加 5 } 6 sum += i; 7 System.out.println(sum); 8 } 9 System.out.println(sum);
比如break输出两个6 如果是return 只会输出一个6,因为i=4时候函数结束了,不会往下边执行了
总结
接下来我们来设计一下博客应用,让它可以管理博客。
用户可以输入以下命令:
命令 | 功能 |
---|---|
create | 创建博客 |
list | 显示博客列表 |
show | 显示博客内容 |
delete | 删除博客 |
exit | 推出程序 |
我们这里通过各种控制结构,先把代码骨架建立起来,具体的功能,我们后面再来逐一实现。
1 package com.tianmaying; 2 3 import java.util.Scanner; 4 5 public class BlogApp { 6 public static void main(String[] args) { 7 Scanner scanner = new Scanner(System.in); 8 while (true) { // 1 9 String command = scanner.next(); 10 System.out.println(command); 11 12 if (command.equals("exit")) { // 2 13 break; // 3 14 } else if (command.equals("create")) { 15 // 处理创建博客的逻辑 16 } else if (command.equals("list")) { 17 // 处理显示博客列表的逻辑 18 } else if (command.equals("show")) { 19 // 处理显示博客内容的逻辑 20 } else if (command.equals("delete")) { 21 System.out.println("开始删除,请稍后");// 处理删除博客的逻辑 22 } else { 23 continue; // 4 24 } 25 } 26 scanner.close(); 27 } 28 }
上面的程序:
- 使用了
while
结构来循环读入用户输入 - 使用了
if/else
结构来分支处理用户的各种命令 - 使用了
break
语句来跳出循环 - 使用了
continue
语句来结束一次循环
最后在循环外部,程序退出之前,调用了scanner.close()
将输入扫描器关闭。这些代码你都弄明白了,Java程序中的控制结构你就基本理解了。