前言(转载请说明作者!)2020.3.5-3.10编写
在之前学过的Java SE语言中,程序是按照从上到下的顺序来执行的,即顺序结构程序,顺序结构程序也是程序设计中最为常见的一种程序结构。
但是在程序设计中,只有顺序结构是不够的,可能你需要程序反复计算或执行某一个语句块、根据情况选择不同的语句执行、跳转到某一语句块执行,以上几种运行方式在程序中称为 “程序流程控制”。
Java语言中的流程控制有选择(分支)结构、循环结构和跳转语句三种。
本博客只涵盖“程序流程控制”中的选择(分支)结构,其余的两个会在以后的博客中进行更新!
PS:如果你对C语言有着一定的基础,那么选择(分支)结构将不会是你重点攻克的对象,因为它简单易懂。
程序导引:分时问候机器人
任务实现:根据时间输出显示相应的问候语句。
e.g. 时间在[0,6)时时显示输出:主人,凌晨好,您起的真早啊!
本程序需要获取时间,按照时间显示输出相应的与疾病。
程序流程图
定义
程序流程图是程序分析中最基本、最重要的分析技术,它是进行程序流程分析过gong程中最基本的工具。
程序流程图使用“工序图示符号”,分析研究后对过程进行展示,提高效率。
符号的意义
符号 | 意义 |
---|---|
▭ | 计算步骤或处理过程 |
▢ | 程序的开始或结束 |
▱ | 输入/输出指令(或数据) |
⃟ | 判断和分支 |
⚪ | 连接点(同一流程中从一个进程到另一个进程的交叉引用) |
→ | 流程线(控制流) |
…… | …… |
一些不常用的符号: | |
文件:用一个波浪线水平截断的矩形,是文档及处理说明(输出文件、写入修改文件)。 | |
双边矩形:计算步骤/子处理过程。 |
if-else以及多重结构
即
if(判断条件1)
代码块1;
else if(判断条件2)
代码块2;
else if(判断条件3)
代码块3;
......
else //else即除了上述述判断条件的所有其他情况
代码块4;
上述用语言描述即为:
如果判断条件1为真,则执行代码块1,否则判断判断条件2,如果为真,则执行代码块2,如果判断条件2为假,则判断判断条件3……如果判断条件1、2、3……都不成立,则执行else所对应的代码块。
在代码块中,如果只有一条语句或有一个if-else、switch-case等结构的,大括号可以省略不写,但为了以后的程序开发与维护,使得程序可读性更强,所以大括号不建议省略。
判断条件必须是一个布尔表达式!
程序实现:分时问候机器人
HelloRobot.java
程序实现:
import java.util.Calendar;
/*
* 3-5 分时问候机器人
* @author GeekBoy
*/
public class HelloRobot {
public static void main(String[] args) {
Calendar dt = Calendar.getInstance();
int hour = dt.get(Calendar.HOUR_OF_DAY);//获取当前时间的小时数
if (hour < 6) {
System.out.println("凌晨好");
} else if (hour < 9) {
System.out.println("早上好");
} else if (hour < 12) {
System.out.println("上午好");
} else if (hour < 14) {
System.out.println("中午好");
} else if (hour < 17) {
System.out.println("下午好");
} else if (hour < 19) {
System.out.println("傍晚好");
} else if (hour < 22) {
System.out.println("晚上好");
} else {
System.out.println("深夜好");
}
}
}
PS:在java8中,存在一个过时的获取时间用法:
Date dt = New Date();
int hour = dt.getHours();//此处用法在java8已经失效
switch-case结构
switch(判断的变量){
case 数据:语句;
default:语句;
}