基本介绍
在一个分支结构中又完整地嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支,后面的分支结构称为外层分支.规范: 不要超过3层(可读性不好)
基本语法
if(){
if(){
//if-else...
}else{
//if-else
}
}
案例1
参加歌手比赛,如果初赛成绩大于8.0进入决赛,否则提示淘汰.并且根据性别提示进入男子组或女子组.输入成绩和性别,进行判断和输出信息
import java.util.Scanner; public class NestedIf{ public static void main(String[] args) { //思路分析 //1、创建Scanner对象,接收用户输入 //2、接收 成绩保存到 double score //3、使用if-else判断,如果初赛成绩大于8.0进入决赛,否则淘汰 //4、如果进入到决赛,在接受char gender.使用if-else 输出信息 Scanner MyScanner = new Scanner(System.in); System.out.println("请输入该歌手成绩:"); double score = MyScanner.nextDouble(); if (score > 80.0) { System.out.println("请输入性别:"); char gender = MyScanner.next().charAt(0); if(gender == '男'){ System.out.println("恭喜您,进入男子组决赛"); } else if(gender == '女'){ System.out.println("恭喜您,进入女子组决赛"); } else{ System.out.println("性别输入错误,请再次输入"); } } else{ System.out.println("抱歉,你已被淘汰"); } } }
案例2
出票系统: 根据淡旺季的月份和年龄,打印票价
import java.util.Scanner; import java.util.Calendar; public class NestedIf{ public static void main(String[] args) { //获取Calender对象 Calendar MyCalander = Calendar.getInstance(); // 获取当前月 int month = MyCalander.get(Calendar.MONTH) + 1; System.out.println(month); if (month >= 4 && month <=10) { Scanner MyScanner = new Scanner(System.in); System.out.println("请输入年龄:"); int age = MyScanner.nextInt(); if (age > 0 && age < 18) { System.out.println("半价"); } else if (age >= 18 && age <=60) { System.out.println("票价60" ); } else{ System.out.println("1/3票价"); } } else{ Scanner MyScanner = new Scanner(System.in); System.out.println("请输入年龄:"); int age = MyScanner.nextInt(); if (age >= 18) { System.out.println("票价40"); } else{ System.out.println("票价20"); } } } }