流程是指程序运行时,各语句的执行顺序。控制流程就是用来控制程序中各语句执行的顺序。控制流程结构分为顺序结构、选择结构和循环结构三种。
本文主要对Java的控制流程进行简单总结。
一、块作用域
块(即复合语句)是指由一对大括号括起来的若干条简单的Java语句。块确定了变量的作用域。一个块可以嵌套在另一个块中。下面就是在main方法块中嵌套另一个语句块的示例:
public static void main(String[] args) {
int n;
...
{
int k;
...
}
}
但是,不能在嵌套的两个块中声明同名变量。
二、顺序结构
顺序结构是程序中最简单最基本的控制流程结构,就是按照代码的先后顺序,依次执行。顺序结构流程图如下:
代码示例:
public class OrderDemo {
public static void main(String[] args) {
System.out.println("开始");
System.out.println("Hello World");
System.out.println("结束");
}
}
三、选择结构
选择结构也被称为分支结构,可根据不同的条件按照不同的选择执行不同的代码。包括if条件语句和switch语句。其中if条件语句有if
、if···else
和if···else if
三种格式。
1.if语句
格式:if(condition) statement
注意:这里的statement可以是一条简单语句也可以是一个块(复合语句)。
if语句控制流程图如下:
执行流程说明:先判断关系表达式的值是true还是false,如果是true则执行语句体,如果是false则不执行语句体。
代码示例:
public class IfDemo {
public static void main(String[] args) {
System.out.println("开始");
int x = 10;
if (x == 10) {
System.out.println("x等于10");
}
if (x == 20) {
System.out.println("x等于20");
}
System.out.println("结束");
}
}
2.if···else语句
格式:if (condition) statement1 else statement2
if···else语句控制流程图如下:
执行流程说明:先判断关系表达式的值是true还是false,如果是true则执行语句体1,如果是false则执行语句体2。
注意:
- else部分是可选的,else子句与最邻近的if构成一组。
- 三元运算符和if···else语句的情况很相似,在某些情况下应该是可以相互转换。三元运算符的操作都可以使用if语句改进,反之不成立。比如if语句的语句体是一条输出语句的时候,因为三元运算符是一个运算符,必须要求有一个结果返回,而输出语句却不能作为一个返回结果。
代码示例:
public class IfDemo2 {
public static void main(String[] args) {
// 创建键盘录入对象
Scanner sc = new Scanner(System.in);
// 获取两个数据中较大的值
System.out.println("请输入第一个数据:");
int a = sc.nextInt();
System.out.println("请输入第二个数据:");
int b = sc.nextInt();
// 定义一个变量接收最大值
int max;
if (a > b) {
max = a;
} else {
max = b;
}
System.out.println("max:" + max);
System.out.println("----------------");
// 判断一个数据是奇数还是偶数
System.out.println("请输入你要判断的数据:");
int x = sc.nextInt();