在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,要清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
1、顺序结构
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
总的来说:写在前面的先执行,写在后面的后执行
顺序结构图:
例子:
public class OperatorDemo {
public static void main(String[] args) {
System.out.println("程序开始了");
System.out.println("↓");
System.out.println("程序运行中...");
System.out.println("↓");
System.out.println("程序结束了");
}
}
输出结果:
2、选择结构
选择结构也被称为分支结构。
选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。
Java语言提供了两种选择结构语句:if语句和switch语句
if语句,if语句有三种格式
(1)第一种格式:
执行流程
if(关系表达式) {//首先判断关系表达式看其结果是true还是false
语句体1;//如果是true就执行语句体
}//如果是false就不执行语句体
注意事项:
关系表达式无论简单还是复杂,结果必须是boolean类型。if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。建议永远不要省略。一般来说:有左大括号就没有分号,有分号就没有左大括号
例子:
public class OperatorDemo {
public static void main(String[] args) {
int x=10;
if(x==10){
System.out.println("x 等于 10");
}
}
}
输出结果:
(2)if语句第二种格式:
执行流程
if(关系表达式) {//首先判断关系表达式看其结果是true还是false
语句体1;//如果是true就执行语句体1
}else {
语句体2;//如果是false就执行语句体2
}
比如三元运算符,它根据比较判断后,给出的也是两个结果,所以,这种情况和if语句的第二种格式很相似,他们在某些情况下应该是可以相互转换的。
if语句第二种格式和三元运算符:
三元运算符的操作都可以使用if语句改进,反之不成立。
什么时候不成立呢?当if语句控制的语句体是一条输出语句的时候,就不成立。因为三元运算符是一个运算符,必须要求有一个结果返回。而输出语句却不能作为一个返回结果。
例子:
public class OperatorDemo {
public static void main(String[] args) {
int a=10;
int b=20;
if(a==b){
System.out.println("a 等于 b");
}else{
System.out.println("a 不等于 b");
}
}
}
输出结果:
(3)if语句第三种格式:
执行流程
public static void main(String[] args) {
if(关系表达式1) {//首先判断关系表达式1看其结果是true还是false
语句体1;//如果是true就执行语句体1
}else if (关系表达式2) {//如果是false就继续判断关系表达式2,看其结果是true还是false
语句体2;//如果是true就执行语句体2
}//如果是false就继续判断关系表达式…看其结果是true还是false
……
else {
语句体n+1;//如果没有任何关系表达式为true,就执行语句体n+1
}
例子:
import java.util.Scanner;
public class OperatorDemo {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
//录入数据
System.out.println("输入你的成绩:");
int score=sc.nextInt();
//对录入的数据进行判断
if(score>=90 && score<=100){
System.out.println("优秀");
}else if(score>=80 && score<80){
System.out.println("好");
}else if(score>=70 && score<70){
System.out.println("良");
}else if(score>=60 && score<70){
System.out.println("及格");
}else if(score>=0 && score<60){
System.out.println("不及格");
}else{
System.out.println("你输入的成绩有误");
}
}
}
输出结果:
输入49的时候
输入78的时候