Java 入门 if 分支结构 switch 分支结构
例 2:张三 Java 成绩大于 90,并且音乐成绩大于 80 分时,或者 Java 成绩等于 100 分,音乐成绩大于 70 分时,老师奖励他。
if(javaFraction>90 && musicFraction>80) {
System.out.println("得到老师奖励");
}
if(javaFraction==100 && musicFraction>70) {
System.out.println("得到老师奖励");
}
使用复杂条件的 if 选择结构式要结合运算符的优先级编写条件。
1.最高级的优先级:()
2.最低级的优先级:=
3.优先级:! > 算术运算符 > 关系运算符 > && > ||
4.复杂条件使用括号提高可读性
注意:只有一条语句时,不建议省略{}。
if(条件){
//代码块 1
}else{
//代码块 2
}
例 3:如果张三 Java 考试成绩大于 90 分,老师奖励他一部手机,否则老师就罚他蹲马步。
if(javaFraction>90) {
System.out.println("老师奖励一部手机");
}else{
System.out.println("惩罚蹲马步");
}
流程图如下:
**1.将条件分成几个连续区间进行判断,单个 if 选择结构无法完成,多个 if 选择结构麻烦且效率低。
2.使用多重 if 选择结构语句时,需要注意顺序。**
if(条件 1){
//代码块 1
}else if(条件 2){
//代码块 2
}else if(条件 3){
//代码块 3
}
例 4:对学员的考试成绩进行评测,成绩>=80 为良好,成绩>=60 为中等,成绩<60 为差。
if(score>=80){
System.out.println("成绩为良好");
}else if(score>=60){
System.out.println("成绩为中等");
}else{
System.out.println("成绩为差");
}
流程图如下:
嵌套 if 控制语句可以通过外部语句和内部语句的写作,增强程序的灵活性。
if(条件 1){
//代码块 1
if(条件 2){
//代码块 2
}else{
//代码块 3
}
}esle{
//代码块 4
}
例 5:小孩成人后身高的因素有遗传、饮食习惯与体育坚持锻炼等。小孩成人后的身高与其父母的身高和自身的性别密切相关。
设 faHeight 为其父身高,moHeight,身高预测公式为:
男性成人时身高 = (faHeight + moheight)*0.54
女性成人时身高 = (faHeight * 0.923 +moHeight) / 2
此外,喜爱锻炼可增加身高 2%,有良好的饮食习惯可增加身高 1.5%。利用给定的公式和身高预测方法对你的身高进行预测。
要求父母的身高、是否爱好体育锻炼等参数从键盘输入。
提示:字符串的比较使用.equals 方法,如 String a=“爱好”; a.equals(“爱好”)的值为 true。
import java.util.Scanner;
public class demo8 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入你父亲的身高:");
double faHeight = sc.nextDouble();
System.out.println("请输入你母亲的身高:");
double moHeight = sc.nextDouble();
System.out.println("请输入你的性别:(男/女)");
String sex = sc.next();
System.out.println("是否喜欢锻炼?(是/否)");
String duanlian = sc.next();
System.out.println("饮食是否健康?(是/否)");
String yinshi = sc.next();
double shengao=0;
//性别是男
if(sex.equals("男")) {
shengao=(faHeight + moHeight)*0.54;
//性别是男,爱锻炼
if(duanlian.equals("是")) {
shengao=shengao*1.02;
//性别是男,爱锻炼,饮食健康
if(yinshi.equals("是")) {
shengao=shengao*1.015;
}else {
//性别是男,饮食健康
if(yinshi.equals("是"));
shengao=shengao*1.015;
}
}
//性别是女
}else if (sex.equals("女")) {
shengao=(faHeight*0.923 + moHeight)*0.54;
//性别是女,爱锻炼
if(duanlian.equals("是")) {
shengao=shengao*1.02;
//性别是女,爱锻炼,饮食健康
if(yinshi.equals("是")) {
shengao=shengao*1.015;
}else {
//性别是女,饮食健康
if(yinshi.equals("是")) {
shengao=shengao*1.015;
}
}
}
}
System.out.println("你的身高为:"+(int)shengao+"cm");
}
}
流程图如下:
1.条件为等值判断,一针见血。
2.default 块顺序可以变动,但要注意执行顺序,通常 default 放在末尾,也可以省略。
switch (表达式) {
case 常量 1:
语句;
b
reak;
case 常量 2:
语句;
break;
···
default:
语句;
评论