6 选择流程控制语句
概述:
是程序中最简单最基本的流程控制,没有特定的语法结构,只需要按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
流程图:
if语句的格式:
第一种:
if(关系表达式){
语句体;
}
执行流程:
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体
流程图:
案例:
packagecom.lyc.test;public classIfDemo01 {public static voidmain(String[] args) {/*** if语句有三种格式:
*
* 第二种:
* if(关系表达式){
* 语句体;
* }
*
* 执行流程:
* A.首先判断 关系表达式 看其结果是true还是false
* B.如果是true,就执行语句体
* C.如果是false,就不执行语句体
**/
//定义两个变量
int a = 10;int b = 20;if (a ==b) {
System.out.println("a等于b");
}int c = 10;if (a ==c) {
System.out.println("a等于c");
}
}
}
第二种:
if(关系表达式){
语句体1;
}else{
语句体2;
}
执行流程:
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体1
如果是false就执行语句体2
流程图:
案例:
packagecom.lyc.test;public classIfDemo02 {public static voidmain(String[] args) {/*** if语句有三种格式:
*
* 第二种:
* if(关系表达式){
* 语句体1;
* }else{
* 语句体2
* }
*
* 执行流程:
* A.首先判断 关系表达式 看其结果是true还是false
* B.如果是true,就执行语句体1
* C.如果是false,就不执行语句体2
**/
//判断是奇数还是偶数//定义两个变量
int a = 20;//给a重新赋值
a = 15;if (a % 2 ==0) {
System.out.println("a是偶数");
}else{
System.out.println("a是奇数");
}
}
}
第三种:
if(关系表达式1){
语句体1;
}else if(关系表达式2){
语句体2;
}else if(关系表达式3){
语句体3;
}
......
else{
语句体n+1;
}
执行流程:
首先判断关系表达式1看其结果是true还是false
如果是true就执行语句体1
如果是false就继续判断关系表达式2看其结果是true还是false
如果是true就执行语句体2
如果是false就继续判断关系表达式…看其结果是true还是false
…
如果没有任何关系表达式为true,就执行语句体n+1
流程图:
案例:
packagecom.lyc.test;public classIfDemo03 {public static voidmain(String[] args) {/*** if语句有三种格式:
*
* 第三种:
* if(关系表达式1){
* 语句体1;
* }else if(关系表达式2){
* 语句体2;
* }else if(关系表达式3){
* 语句体3;
* }
* .......
* else{
* 语句体n+1;
* }
*
* 执行流程:
* A.首先判断 关系表达式 看其结果是true还是false
* B.如果是true,就执行语句体1,如果是false就继续进行表达式2的判断,
* 看其结果是true还是fasle
* C.如果是true,就执行语句体2,如果是false就继续进行表达式...的判断
* 看其结果是true还是false
* .......
* D.如果没有一个为true的,就执行语句体n+1
*
* if语句的三种格式:
* 第一种格式适合做一种情况的判断
* 第二种格式适合做二种情况的判断
* 第三种格式适合做多种情况的判断
**/
//x和y的关系满足如下://x>=3 y = 2x + 1;//-1<=x<3 y = 2x;//x<=-1 y = 2x – 1;//根据给定的x的值,计算出y的值并输出。//定义变量
int x = 5;int y = 0;if (x >= 3) {
y= 2*x+1;
}else if (x >=-1 && x< 3) {
y= 2*x;
}else if (x<=-1) {
y= 2*x-1;
}
System.out.println("最后y的值为:"+y);
}
}
If语句练习:
1> if语句实现获取两个数据较大值
packagecom.lyc.test;importjava.util.Scanner;public classIfDemo04 {public static voidmain(String[] args) {/*** 键盘录入两个数据,获取这两个数据的最大值
*
* 分析:
* A.看到键盘录入,三步骤:
* 导包,创建对象,接收数据
* B.获取这两个数据的最大值,其实就是判断这两个数据谁大,把较大的值输出就可以了
*
* 导包:
* A.手动导包:import java.util.Scanner;
* B.鼠标点击红色叉叉,自动生成
* C.快捷键导包:ctrl+shift+o*/
//创建对象
Scanner sc = newScanner(System.in);//接收数据
System.out.println("请输入第一个数:");int num1 =sc.nextInt();
System.out.println("请输入第二个数:");int num2 =sc.nextInt();//采用if语句的第二种格式:
if (num1>num2) {
System.out.println("较大的值是:"+num1);
}else{
System.out.println("较大的值是:"+num2);
}//有的时候我们拿到了想要的值后,未必想直接输出。所以我们可以定义一个变量来接收我们拿到的值
int max = 0;if (num1>num2) {
max=num1;
}else{
max=num2;
}
max+=100;
System.out.println(max);
}
}
2> if语句实现判断学生等级
packagecom.lyc.test;importjava.util.Scanner;public classIfDemo05 {public static voidmain(String[] args) {/*** 键盘录入学生的考试成绩,根据考试成绩来判断学生属于那个级别
* 90-100 优秀
* 80-90 好
* 70-80 良
* 60-70 及格
* 60以下 不及格
* 如果输入的成绩没在0-100之内,则判断输入错误*/
//创建对象
Scanner sc = newScanner(System.in);//接收数据
System.out.println("请输入学生的考试成绩:");int score =sc.nextInt();//if语句的第三种格式:
if(score<0 || score>100){
System.out.println("你输入的学生成绩是错误的!!!");
}else if(score>=90 && score<=100){
System.out.println("成绩属于优秀");
}else if(score>=80 && score<90){
System.out.println("成绩属于好");
}else if(score>=70 && score<80){
System.out.println("成绩属于良");
}else if(score>60 && score<70){
System.out.println("成绩属于及格");
}else{
System.out.println("成绩属于不及格");
}
}
}
switch语句的格式及执行流程
格式解释:
switch表示这是switch语句
表达式的取值:byte,short,int,char
JDK5以后可以是枚举
JDK7以后可以是String
case后面跟的是要和表达式进行比较的值
语句体部分可以是一条或多条语句
break表示中断,结束的意思,可以结束switch语句
default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
执行流程
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
switch语句执行流程图
使用swit语句实现根据数字输出对应星期
packagecom.lyc.test;importjava.util.Scanner;public classSwitchDemo {public static voidmain(String[] args) {/*** switch语句格式:
* switch(表达式){
* case 值1:
* 语句体1;
* break;
* case 值2:
* 语句体1;
* break;
* ......
* default:
* 语句体n+1;
* break;
* }*/Scanner sc= newScanner(System.in);
System.out.println("请输入一个(1-7)之间的数字:");int day =sc.nextInt();//switch语句实现选择
switch(day) {case 1:
System.out.println("星期一");break;case 2:
System.out.println("星期二");break;case 3:
System.out.println("星期三");break;case 4:
System.out.println("星期四");break;case 5:
System.out.println("星期五");break;case 6:
System.out.println("星期六");break;case 7:
System.out.println("星期日");break;default:
System.out.println("你输入的数字没在范围内");break;
}
}
}