目录
前言:
一、分支控制
单分支if
1)代码格式
2)代码演示
双分支if-else
1)代码格式
2)代码演示
濾多分支if-else if....-else濾
1)多分支流程控制图
2)代码演示
switch
1)代码格式
2)流程图
3)实例
if与switch的比较
前言:
在程序中,程序的流程控制决定程序是如何执行的,因此作为java的入门,我们必须掌握程序流程控制,我将向大家介绍了两大流程控制结构,分别为分支控制和循环控制,顺序控制是java程序执行的默认流程,自上而下的执行代码,复合人们日常的逻辑思维,故本篇不做介绍。由于篇幅较长,我将用两篇文章介绍java的流程控制结构,本篇文章讲解分支控制的相关内容。
一、分支控制
单分支if
1)代码格式
if(condition){
statement
}
1)代码格式
if(condition){
statement
}
说明:
当()中的条件表达式为真时,则程序执行{}中的语句,反之当()中的条件表达式为假时,{}中的语句则不会被执行。
2)代码演示
import java.util.Scanner;
public static void main(String[] args) {
System.out.println("请输入年龄");
Scanner input = new Scanner(System.in);
int age = input.nextInt();
//若输入的年龄大于18,则输出“你已经成年”
if(age >= 18){
System.out.println("你已经成年");
}
import java.util.Scanner;
public static void main(String[] args) {
System.out.println("请输入年龄");
Scanner input = new Scanner(System.in);
int age = input.nextInt();
//若输入的年龄大于18,则输出“你已经成年”
if(age >= 18){
System.out.println("你已经成年");
}
好!让我们来看一下这个简单的代码,用整型数据age接收用户输入的年龄,通过if进行判断,例如用户输入了一个>=18的数字,比如是19,19大于18即小括号中条件判断语句为真,则会执行{}中的代码,输出“你已经成年”,但是!若用户输入的数字小于18,则计算机什么都不会输出,显然,单单一个if单分支语句并不够用,因此我们引入了if-else这个双分支语句。
双分支if-else
1)代码格式
if(condition){
statement1
}else{
statement2
}
说明:
当()中的条件判断语句为真时,则程序执行statement1所在的语句块,若()中的条件判断语句为假时,则程序执行statement2所在的语句块。相比于单分支,双分支大大增强了程序的可读性,并且平时最常用的也是双分支结构。
2)代码演示我们来将上面的程序优化一下,如下:
import java.util.Scanner;
public static void main(String[] args) {
System.out.println("请输入年龄");
Scanner input = new Scanner(System.in);
int age = input.nextInt();
//若输入的年龄大于18,则输出“你已经成年”
if(age >= 18){
System.out.println("你已经成年");
}
else{
System.out.println("还未成年哦!");
}
System.out.println("程序结束")
}
✅用一个流程图来让大家更好的理解if-else执行流程
濾多分支if-else if....-else濾
那么,多分支有什么作用呢,在我们对程序的需求中,显然单分支是远远不够用的,双分支也并不是万能的,有时候分支结构会错综复杂,这个时候,多分支if-else if...-else就派上用场了。
1)多分支流程控制图
2)代码演示
下面我们用一段简单的代码,来更加直观的体会一下多分支结构的执行流程
import java.util.Scanner;
public static void main(String[] args) {
//我们用一段代码来实现对信用分的评级
//信用分的范围为[0,100]
//信用分>=90即为优秀
//80<=信用分<90即为良好
//60<=信用分<80即为一般
//信用分<60即为差
System.out.println("请输入您的信用分");
Scanner input = new Scanner(System.in);
int grade = input.nextInt();
if(grade >=0 && grade <= 100){ //保证用户输入的为有效数字
if(grade >= 90 ){
System.out.println("信用优秀");
}else if(grade >= 80 && grade < 90){
System.out.println("信用良好");
}else if(grade >=60 && grade <= 80){
System.out.println("信用一般");
}else if(grade < 60){
System.out.println("信用较差");
}
}else{
System.out.println("您的输入有误,请输入[0,100]内的整型数字");
}
}
switch
switch是一个可以实现多重选择的语句,在处理多个选项时,if/else往往会显得格外复杂,让人头大,这个时候switch语句就可以派上用场了。
1)代码格式switch(表达式){
case 常量1:
语句块1;
break;
case 常量2:
语句块2;
break;
default:
default语句块;
break;
}
- {}中的case可以是任意个数,看情况需求而言,default语句是可选择项,即可写可不写。
- case后的常量类型可以为char、byte、short、int的常量表达式、枚举常量、从java SE 7开始,还可以是字符串常量
- 语句中的break的作用是跳出当前case语句,执行下一条case语句。
- 常量和default后面的是冒号不是分号
2)流程图
-
程序首先根据表达式对常量1进行判断,若常量1的值与表达式相同,则执行语句块1
-
反之则对常量2的值进行判断,若相同则执行语句块2,以此类推
-
若没有常量与表达式相同,则会执行default语句块
-
若没有default语句则直接退出switch语句
3)实例
import java.util.Scanner;
public static void main(String[] args) {
//我们将输入的char类型的a,b,c由小写转为大写
//若输入其他,则提示输入错误
Scanner input = new Scanner(System.in);
System.out.println("请在a,b,c中选择一个进行输入"); //提示语句
char letter = input.next().charAt(0);
switch(letter){
case 'a':
System.out.println("A");
break;
case 'b':
System.out.println("B");
break;
case 'c':
System.out.println("C");
break;
default:
System.out.println("你的输入有误");
break;
}
}
if与switch的比较
- 如果判断的具体数值不多,而且符合 byte、 short 、int、 char, enum[枚举], String 这 6 种类型。虽然两个语句都可以使用,建议使用 swtich 语句
- 其他情况:对区间判断,对结果为 boolean 类型判断,使用 if,if 的使用范围更广
-
程序首先根据表达式对常量1进行判断,若常量1的值与表达式相同,则执行语句块1
-
反之则对常量2的值进行判断,若相同则执行语句块2,以此类推
-
若没有常量与表达式相同,则会执行default语句块
-
若没有default语句则直接退出switch语句
3)实例
import java.util.Scanner;
public static void main(String[] args) {
//我们将输入的char类型的a,b,c由小写转为大写
//若输入其他,则提示输入错误
Scanner input = new Scanner(System.in);
System.out.println("请在a,b,c中选择一个进行输入"); //提示语句
char letter = input.next().charAt(0);
switch(letter){
case 'a':
System.out.println("A");
break;
case 'b':
System.out.println("B");
break;
case 'c':
System.out.println("C");
break;
default:
System.out.println("你的输入有误");
break;
}
}
if与switch的比较
- 如果判断的具体数值不多,而且符合 byte、 short 、int、 char, enum[枚举], String 这 6 种类型。虽然两个语句都可以使用,建议使用 swtich 语句
- 其他情况:对区间判断,对结果为 boolean 类型判断,使用 if,if 的使用范围更广
- 如果判断的具体数值不多,而且符合 byte、 short 、int、 char, enum[枚举], String 这 6 种类型。虽然两个语句都可以使用,建议使用 swtich 语句
- 其他情况:对区间判断,对结果为 boolean 类型判断,使用 if,if 的使用范围更广
本篇为java系列的第一篇,后续讲持续更新更多的java相关内容
感兴趣的小伙伴点个关注再走吧,谢谢!
对本文内容有不懂或疑惑的地方欢迎下面评论或直接私信



