第十节.Java中控制语句-判断语句
1. 什么是控制语句
通过之前的学习我们大概了解,代码执行的顺序大体是自上而下执行的。所谓流程控制语句,就是控制代码执行顺序的语句,if与switch语句使程序存在选择分支,for与while语句使程序在满足某条件的情况下重复的做一件事情。这里我们来学习java中的控制语句。java中的控制语句有三类判断,选择和循环。其中判断语句有三种语法: if ,if else,if else if 。选择语句 有一种语法 switch case 。循环语句有三种语法 while ,do while 和 for。以下几节课我们来详细学习这几种语法。
2. 判断语句解析
if语句分为三种语法格式,每一种语法格式都有自身的特点,下面我们来详细介绍每一种语法。
单分支判断if语句
单分支if语句,是指如果满足某种条件,就进行某种处理。如:如果你考试能通过,就给你放假一天。我们试着将这句话转换成程序,先来看下边的伪代码。
if语句是指如果满足某种条件,就进行某种处理。如:如果你考试能通过,就给你放假一天。我们试着将这句话转换成程序,先来看下边我们通过这句话来分析一下。
// 我们先从语文的角度来 分析一下这个问题
如果 你的考试能通过 就给你放假一天
如果:在这里代表 需要对某个条件进行判断
考试通过:这个条件 可能成立也可能不成立
放假一天:这个结果 条件成立才发生 条件不成立 不发生
如上所展示 如果后是我提出的条件 ,如果你能满足我的条件就可以让我执行一些操作。如果在java中的关键字是if ,我们将上边的话转化的更接近代码如下:
// 伪代码 不能执行 演示语法
if(你的考试通过了){
就给你放假一天。
}
以上描述的伪代码就接近了 java的语法如下:
// 伪代码不能执行 演示语法
if(条件表达式){
代码块;
… …
}
上述的语法中,if后括号() 内的条件表达式结果必须是boolean类型。当条件表达式的结果是true时,就执行它之后的{} 内的语句块内容。为false则不执行。流程如下图:
让我们通过代码实例来演示以下if语句。
代码演示:
public class Demo1{
public static void main(String[] args){
// if语句 演示
int score = 100; // 定义变量score 代表一个分数
// 判断 分数90以上表示通过 放假一天
if(score>=90){
System.out.println("考试通过,放假一天!");
}
System.out.println("程序执行结束");
}
}
执行结果:
分析一波:从代码中可以看出 score的赋值是100,if后score>=90的条件成立,结果执行了{}内的输出语句。然后程序结束。 我们可以更改一下score值变成59 再来执行一下。
修改代码:
public class Demo1{
public static void main(String[] args){
// if语句 演示
// 反复修改 下边的 分数值 运行查看结果 分析
int score = 59; // 定义变量score 代表一个分数
// 判断 分数90以上表示通过 放假一天
if(score>=90){
System.out.println("考试通过,放假一天!");
}
System.out.println("程序执行结束");
}
}
执行结果:
分析一波: 代码中将 代表 分数 score 的变量赋值 59 ,score>=90 条件不成立。不在执行if后{}内的输出。然后程序结束了。可以反复修改 score的值编译执行查看结果,对代码进行理解。
双分支判断if else 语句
if else 语句指的是,如果满足某种条件,就进行某种处理,如果不满足条件就执行另一种处理。例如判断一个整数是偶数还是奇数,如果数字能被2整除就是偶数,不能就是奇数。if else 语法如下:
// 伪代码 表示语法 不能运行
if(条件表达式){
执行语句;
… …
} else {
执行语句;
… …
}
上述格式中,判断条件表达式的值如果是true就执行 if后{}中的执行语句。如果条件表达式的值是false,就执行else后{} 内的执行语句。执行流程如下图:
代码演示:
public class Demo1{
public static void main(String[] args){
// if else语句 演示
int a = 10;
if(a%2==0){
System.out.println(a+"是偶数");
}else{
System.out.println(a+"是奇数");
}
}
}
运行结果:
分析一波:分析上边的代码和执行结果,a的初始值是10 。if的条件 a%2==0 是成立的所以执行了if后的语句块输出 “10是偶数“。我们可以将a的初始值变成11,再来编译和执行一下。反复修改代码中a的值,编译执行查看结果。来理解下代码的执行规则。
多分支判断 else if 语句
if else if 语句,用于多个条件进行判断,进行多种不同的处理。例如:对一个考试成绩进行等级的划分,如果大于等于90分等级为优等生,如果大于等于 80 小于90分为良好,如果大于等于60分小于80分为中等,其他为差等生。这样的多条件的处理就需要使用 if else if 语句。语法格式如下:
// 伪代码 语法展示 不能执行
if(条件1){
执行语句块1;
… …
}else if(条件2){
执行语句块2;
… …
}
… …
else if(条件n){
执行语句块n;
… …
}else{
最后一个执行语句块;
… …
}
上述格式中,由上而下顺序判断条件。当判断条件1为true时就执行它之后的语句块1。当条件1 为false时,就顺序向下判断条件2,如果条件2为true时就执行它之后的语句块2。条件2为false时就继续向下判断条件3,以此类推,如果所有的条件都是false 的话,就执行最后一个else后的最后语句块。注意不管有多少的语句块,最终都只能执行一个。即便多个条件为true,也只能执行第一个条件为true的语句块,后边的将不再执行。流程图如下:
代码演示:
public class Demo1{
public static void main(String[] args){
// if else语句 演示
int score= 66;
if(score>=90){
System.out.println(score+"分是优等生");
}else if(score>=80){
System.out.println(score+"分是良好生");
}else if(score>=60){
System.out.println(score+"分是中等生");
}else{
System.out.println(score+"分是差等生");
}
}
}
执行结果:
分析一波:score变量的值是66 ,执行第一个条件score>=90 结果为false,不执行它之后的语句块。继续判断第二个条件 score>=80 结果依然为false,也不执行它之后的语句。继续判断第三个条件score>=60结果为true,执行它之后的语句输出“66分是中等生“。之后不再向下执行。我们将score成绩的值 更改成 50 88 99 分别编译和执行查看结果。