前言
在生活中,不是所有事情都只有一种结果。很多事情都是在不同的条件下产生不同的结果。本篇就简要介绍一下Java编程语言中的第二种流程结构——分支结构。
一、分支结构是什么?
分支结构就是指某一件事在不同的条件下会产生不同的结果。典型的实例有:分岔路口,化学反应,成绩评定等。
流程图示:
二、分支结构的使用
1.if分支结构
1.一个if的分支结构
使用场景:满足条件时执行,否则就不执行。
案例:如果我周末有空,我就和朋友一起去看电影。
代码如下(示例):
if (isFree == true){
System.out.println("和朋友一起去看电影!");
}
2.if—else结构
使用场景:当事件只有两种情况并且每种情况下有不同结果的时候。
案例:如果小明数学考试考了90分以上,奖励他一个玩具,否则奖励他一套数学卷子。
代码如下(示例):
double grade = 95;
if (grade >= 90){
System.out.println("奖励你一个玩具。");
} else {
System.out.println("奖励你一套数学卷子。");
}
3.if—else if—else结构
使用场景:当事件有三种情况或者更多,并且每种情况下有不同结果的时候。
案例:如果小明Java考试考了90分以上,奖励他一架玩具飞机,如果大于80分,奖励玩具坦克一辆,如果大于60分,奖励玩具拖拉机一辆,否则留级重考。
代码如下(示例):
Scanner sc = new Scanner(System.in);
System.out.println("请输入小明Java成绩:");
double java = sc.nextDouble();
//2.如果小明java考试成绩大于90分,学校奖励玩具飞机一架,
if (java >= 90){
System.out.println("奖励飞机一架");
} else if(java >= 80){ // 如果大于80分,奖励玩具坦克一辆,
System.out.println("奖励坦克一辆");
} else if (java >= 60){ //如果大于60分,奖励玩具拖拉机一辆,
System.out.println("奖励拖拉机一辆");
} else {//低于60分留级重考。
System.out.println("留级重考");
}
4.if的嵌套
使用场景:当事件的发生是有前提条件,满足前提条件和执行条件才会发生的时候。
案例:询问小明是否有女朋友,如果有,再询问他是否有车,有车就可以结婚,否则就先努力赚钱。没有女朋友就先找女朋友。
代码如下(示例):
Scanner sc = new Scanner(System.in);
System.out.println("小明是否有女朋友(1.有 2.没有):");
int hasGirlFriend = sc.nextInt();
//判断小明是否有女朋友
if (hasGirlFriend == 1){
//判断小明是否有车
System.out.println("小明是否有车");
int hasCar = sc.nextInt();
if(hasCar == 1){ // 有车,可以结婚
System.out.println("可以结婚。");
} else { //没车,努力赚钱
System.out.println("努力赚钱");
}
} else {//没女朋友
System.out.println("先找女朋友");
}
2.switch分支结构
使用场景:当事件发生的条件是一个确定的值得时候,多用switch语句
案例:输入1—7中任意整数,判断是周几。
代码如下(示例):
Scanner sc = new Scanner(System.in);
System.out.println("请输入1-7中任意数字以判断是周几:");
int a = sc.nextInt();
switch (a){
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;)
}
值得注意的是,break不能省略,否则会继续往下执行,直到执行到break语句才结束。default只有在最后才可以省略break。
案例:判断某个变量里存放的字母是不是元音字母。
代码如下(示例):
System.out.println("请输入一个字母:");
Scanner sc = new Scanner(System.in);
String zm = sc.next();
switch (zm){
case "a":
case "e":
case "i":
case "o":
case "u":
case "A":
case "E":
case "I":
case "O":
case "U":
System.out.println(zm+"是元音字母");
break;
default:
System.out.println(zm+"是辅音字母");
}
三、总结
根据不同的条件和选择的情况现作出以下分类讨论:
1.一个条件一种选择结果:基本if选择结构
2.多个条件一种选择结果:复杂条件if选择结构(通过逻辑运算符把多个条件判断连接起来)
3.一个条件,2种选择结果:If - else
4.一个条件,3种以上选择结果:If —else if—else(范围条件判断)
5.多个条件,存在前提条件的情况:嵌套if结构
6.在第4种情况中,条件判断为等值判断,而不是范围判断的情况下,一般使用Switch