第一节 分支结构——if else
本小节着重介绍基于if-else实现的分支结构,在本章开头,我们初步介绍了分支结构:程序选择执行或不执行某段代码的程序结构,或者在多段程序代码中按照条件选择其中一段代码执行。那么它就隐含有以下几种情况:
- 满足某一条件时执行某段代码或满足某一条件的相反条件才执行某段代码(满足某条件时不执行某段代码)。
- 满足某一条件时执行某段代码,满足相反条件时,执行另一段代码。
- 有多端代码,满足哪个条件执行那段代码。
其中,第一种情况和第二种情况都是将程序执行顺序根据判断条件分成了两个分支,只是第一种一个分支执行一些代码,而另一个分支却不执行任何代码,这种将程序执行顺序根据判断条件分成了两个分支称为双分支结构,而第三种情况则称为多分支结构。
if-else的双分支结构如下:
if(condition) {
//condition为判定条件,可以时boolean型变量或常量,也可以是运算结果是boolean的表达式。
...
//condition 为true时执行这段代码,condition为false时不执行
} else {
...
//condition 为false时执行这段代码,condition为ture时不执行
}
我们运用上面的if-else双分支结构写两个例子: 假如某学校有一学生信息管理系统开发需求,要求将某一学生的某成绩大于60分时,输出改学生的姓名,学校将依据输出学生的姓名给予奖励。
int score = 79;//假设score变量为某学生的成绩
String name = "陈大文";//假设name为该学生的姓名
if(score > 60) {//判断学生的成绩是否大于60分
System.out.println(name);//如果成绩大于60分,那么输出该学生的姓名
}
以上便是使用if-else结构实现的第一种分支结构,既将程序执行流程根据条件分成两个分支,其中一个分支执行代码,另一个分支则不执行任何代码。不过上述代码可以换另外一种写法,就是使用某条件的反面,他们的结构完全相同,只是对数据处理的方式不一样。
int score = 79;//假设score变量为某学生的成绩
String name = "陈大文";//假设name为该学生的姓名
if(!score <= 60) {//判断学生的成绩是否是小于等于60分的反条件
System.out.println(name);//如果是则答应该学生的姓名
}
下面使用另外一个案例,来实现一个选择两个数种最小的数,并输出,来演示两个分支都有代码执行的情况。:
//从键盘接受两个整数number1和nunber2
int number1 = scanner.nextInt();
int number2 = scanner.nextInt();
if(number1 < number2) {//判断nunber1是否小于number2
System.out.println(number1);//若是则输出number1
} else {//否则
System.out.println(number2);//输出number2
}
上面便是双分支结构的两种情况了,下面介绍多分支结构。多分支结构有两种方法实现。
第一种:我们用if-else将代码分为两个分支,然后在两个分支里面按照需求再进行分,说白了就是分支嵌套,分支内部继续分支。结构如下:
if(condition) {
if(condition) {
//分支1
} else {
//分支2
}
} else {
if(condition) {
//分支3
} else {
//分支4
}
}
第二种则是,将else(条件为假的)分支拆分成两分,if(条件为真的)分支不拆分,它的结构如下:
if(condition) {
} else if(condition2) {
} else if(condition3) {
} else if(condition4) {
} else {
}
我们依据第二种多分支方法实现一个案例:还是上面的学生成绩管理系统,假设系统要求将学生成绩,使用A(优秀:score >= 90),B(良好: score >= 75),C(及格: score >= 60),D(不及格:score < 60)四个等级划分。我们便可以使用第二种方法这样的长if-else串来实现。
int score = scanner.nextInt();
if(score >= 90) {
System.out.println("A");
} else if(score >= 75) {
System.out.println("B");
} else if(score >= 60) {
System.out.println("C");
} else {
System.out.println("D");
}
~完~
以上便是,本小节的全部内容,学完本小节可以实现很多有意思的程序,比如现在可以将我们之前的那4个一次行计算器整合为一个,判断输入计算指令来执行响应的计算。