概念:判断某个条件,如果成立就执行对应的功能
简单的if分支
语法结构:
if(表达式){
…代码块…
}
理解:表达式的结果必须是boolean值
true:执行代码块
false:跳过if分支,执行分支以外的代码
ps:判断吉吉国王的Java考试成绩是否大于98分,若是则奖励他一根香蕉,反之则没有。
package com.qf.test01;
?
import java.util.Scanner;
?
public class Test01 {
?
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("请输入java考试成绩:");
double score = scan.nextDouble();
if(score>98) {
System.out.println("奖励吉吉国王一根香蕉");
}
}
}
复杂的if分支
ps1:人类的健康值在20-25的数值内为健康(健康值算法:体重kg/身高m的平方)
package com.qf.test01;
?
import java.util.Scanner;
?
public class Test01 {
?
public static void main(String[] args) {
//输入体重和身高
Scanner scan = new Scanner(System.in);
System.out.print("请输入体重(kg):");
double weigth = scan.nextDouble();
System.out.print("请输入身高(m):");
double heigth = scan.nextDouble();
//计算健康值
double heath = weigth/(heigth*heigth);
if(heath>=20&&heath<=25) {
System.out.println("护士说:\"您的身体很健康,请继续保持!\"");
}
}
}
ps2:熊二Java成绩大于98分,且音乐成绩大于80分,熊大奖励他一个西瓜;或者Java成绩等于100分,音乐成绩大于70分,熊大也奖励他一个西瓜。
package com.qf.test01;
?
import java.util.Scanner;
?
public class Test01 {
?
public static void main(String[] args) {
//输入成绩
Scanner scan = new Scanner(System.in);
System.out.print("请输入java成绩:");
double javaScore = scan.nextDouble();
System.out.print("请输入音乐成绩:");
double musicScore = scan.nextDouble();
//判断是否符合奖励条件
if((javaScore>98&&musicScore>80)||(javaScore==100&&musicScore>70)) {
System.out.println("熊大说:\"干得不错熊二,给你个西瓜!\"");
}
}
}
if...else... 语句
//语法规则
if(表达式){
? ...代码块...
}
else{
? ...else代码块...
}
理解:表达式的结果必须是boolean值
true:执行代码块
false:执行else代码块
ps:熊二Java成绩大于98分,熊大奖励他一个西瓜,否则就惩罚熊二打十遍代码。
package com.qf.test01;
?
import java.util.Scanner;
?
public class Test01 {
?
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("请输入java成绩:");
double javaScore = scan.nextDouble();
if(javaScore>98) {
System.out.println("熊大说:\"干得不错熊二,给你个西瓜!\"");
}
else {
System.out.println("熊大说:\"熊就该有个熊样,再去打十遍代码!\"");
}
}
}
?
多重if分支
语法规则:
if(表达式1){
? ...代码块1...
}else if(表达式2){
? ...代码块2...
}else if(表达式n){
? ...代码块n...
}else{
? ...else代码块...
}
理解:从上往下判断表达式,哪个表达式先为true,就执行对应的代码块
表达式的结果必须是boolean类型
true:执行对应的代码块
false:往下判断剩余的代码块
如果表达式都不为true,则执行else代码块
ps:人类的健康值在15-20的数值内为偏瘦,在20-25的数值内为健康,在25-30的数值内为偏胖(健康值算法:体重kg/身高m的平方)
package com.qf.test01;
?
import java.util.Scanner;
?
public class Test01 {
?
public static void main(String[] args) {
//输入体重和身高
Scanner scan = new Scanner(System.in);
System.out.print("请输入体重(kg):");
double weigth = scan.nextDouble();
System.out.print("请输入身高(m):");
double heigth = scan.nextDouble();
//计算健康值
double heath = weigth/(heigth*heigth);
if(heath>=15&&heath<=20) {
System.out.println("护士说:\"您的身体偏瘦,请注意补充营养!\"");
}else if(heath>20&&heath<25) {
System.out.println("护士说:\"您的身体很健康,请继续保持!\"");
}else if(heath>=25&&heath<=30) {
System.out.println("护士说:\"您的身体偏胖,请注意节制饮食!\"");
}else {
System.out.println("护士说:\"您的健康值异常,需要为您仔细的做个检查!\"");
}
}
}
嵌套if分支
ps:学院举行运动会,百米赛跑抛入16秒内的学生有资格进决赛,根据性别分别进入男子组合女子组。
package com.qf.test01;
?
import java.util.Scanner;
?
public class Test01 {
?
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("请输入比赛成绩:");
double score = scan.nextDouble();
if(score>=0&&score<16) {
System.out.print("请输入性别:");
String sex = scan.next();
if(sex.equals("男")) {
System.out.println("恭喜进入男子组决赛");
}else if(sex.equals("女")) {
System.out.println("恭喜进入女子组决赛");
}else {
System.out.println("性别异常!");
}
}else if(score>=16) {
System.out.println("重在参与");
}else {
System.out.println("成绩异常!");
}
}
}