07-控制结构
程序流程控制介绍
在程序中,程序运行的流程控制决定程序是如何运行的。
主要有三大流程控制语句:顺序控制、分支控制和循环控制。
1. 顺序控制
程序从上到下,逐行地执行,中间没有任何判断和跳转。

2. 分支控制(if , else , switch)
分支控制 if-else
让程序有选择的执行,分支控制有三种:单分支、双分支和多分支。
a) 单分支
基本语法:
if(条件表达式){
执行代码块; //(可以有多条语句)
}
说明:当条件表达式为true时,就会执行{}里面的代码;如果为false,则不执行。
这里需要特别注意:如果{}里面只有一条语句,则可以不用{},但建议加上{}。

//需求:编写一个程序,可以输入年龄,如果该同志的年龄大于18岁,则输出"你年龄大于18,要对自己的行为负责,送入监狱!" import java.util.Scanner; public class If01{ public static void main(String[] args){ //思路分析 //1.定义一个Scanner对象,接收输入的年龄 Scanner sc = new Scanner(System.in); System.out.println("请输入年龄:"); //2.把年龄保存到一个变量 int age int age = sc.nextInt(); //3.使用 if 判断,是否输出对应信息 if(age > 18){ System.out.println("你年龄大于18,要对自己的行为负责,送入监狱!"); } System.out.println("程序继续..."); } }
b) 双分支
基本语法:
if(条件表达式){
执行代码块1;
}
else{
执行代码块2;
}
说明:当条件表达式成立时,即执行代码块1,否则执行代码块2。

//需求:编写一个程序,可以输入年龄,如果该同志的年龄大于18岁,则输出"你年龄大于18,要对自己的行为负责,送入监狱!" //否则,输出"你的年龄不大,这次放过你了!" import java.util.Scanner; public class If02{ public static void main(String[] args){ //思路分析 //1.定义一个Scanner对象,接收输入的年龄 Scanner sc = new Scanner(System.in); System.out.println("请输入年龄:"); //2.把年龄保存到一个变量 int age int age = sc.nextInt(); //3.使用 if-else 判断,是否输出对应信息 if(age > 18){ System.out.println("你年龄大于18,要对自己的行为负责,送入监狱!"); } else{ System.out.println("你年龄不大,这次放过你了!"); } System.out.println("程序继续..."); } }
c) 多分支
基本语法:
if(条件表达式1){
执行代码块1;
}
else if(条件表达式2){
执行代码块2;
}
...
else{
执行代码块n;
}
说明:当条件表达式1成立时,即执行代码块1;如果条件表达式1不成立时,才去判断表达式2是否成立,如果条件表达式2成立时,就执行代码块2;以此类推,如果所有的表达式都不成立时,则执行else代码块。

//需求:从键盘输入保国同志的芝麻信用分: //1. 信用分为100分时,输出"信用极好" //2. 信用分为(80.99]时,输出"信用优秀" //3. 信用分为[60.80]时,输出"信用一般" //4. 其它情况,输出"信用不及格" import java.util.Scanner; public class If03{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("请输入保国同志的芝麻信誉分:"); //假定芝麻信誉分为 int 整数类型 int score = sc.nextInt(); //嵌套分支,先对输入的信用分,进行一个范围的有效判断1-100,否则提示输入错误 if(score >=1 && score <= 100){ //因为有4种情况,所以使用多分支 if(score == 100){ System.out.println("信用极好"); }else if(score > 80 && score <= 99){ System.out.println("信用优秀"); }else if(score >= 60 && score <= 80){ System.out.println("信用一般"); }else{ System.out.println("信用不及格"); } }else{ System.out.println("输入错误,信用分需要在1-100之间"); } } }