【JavaSE】-3-分支结构

流程控制
在程序的执行过程中,各条语句的执行顺序对程序的运行结果有着至关重要的影响。掌握Java流程控制
有助于我们编写代码、调试代码以及阅读别人代码。
在Java语言中,流程控制语句有3种:顺序结构、分支结构(也叫选择结构)和循环结构。
顺序结构
顺序结构是程序中最简单、最基本的结构,顺序结构没有特定的语法结构,它按照代码的先后顺序,依
次执行。程序中大多数的代码都是这样执行的。
下面的代码实现了如下需求:输入2个整数,打印最大的数。
public static void main(String[] args) {
//需求:输入2个整数,打印最大的那个整数
//先定义2个整型变量用于存放用户输入的值。变量的初始值为0
int num1 = 0;
int num2 = 0;
//提示用户输入数据
System.out.print(“请输入2个整数,用空格分隔:”);
//定义一个Scanner,用户接收用户输入的数据。
Scanner sc = new Scanner(System.in);
//提取用户输入的数据
num1 = sc.nextInt();
num2 = sc.nextInt();
//定义一个变量保存最大的数
int max = num1 > num2 ? num1 : num2;
System.out.println(“最大的数是:” + max);
}
上面的代码就是顺序结构最直观的体现,代码自上而下,逐条执行。
分支结构(选择结构)
分支结构也叫选择结构,它会根据条件的不同,执行不同的后续语句。
分支结构的使用场景举例:

  1. 如果账号已经登录,可以发表评论;如果没有登录,跳转到登录页面进行登录。
  2. 如果余额充足可以支付;如果余额不足,进入充值页面充值。
  3. 如果是未成年人,游戏2个小时后自动下线。

  4. 在Java中有2种语句可以实现分支。
  5. if语句
  6. switch…case…语句
    循环结构
    循环结构的特点是:特定条件下,代码可以反复执行。
    循环结构的使用场景举例:
  7. 新闻列表页面要显示20条新闻,这20条新闻是通过循环一条一条放到页面上的。
  8. 玩游戏时,网络不好的时候,重新连接服务器也是反复连接多次,而不是连接一次就不连接了。
  9. 数据报表页面,对数据进行求和。

  10. 在Java中有3种语句可以实现循环。
  11. for 循环
  12. while 循环
  13. do…while 循环
    不同的循环语句适用于不同的场景。
    分支结构
    if语句
    if语句格式1
    格式:
    执行流程:
    if(关系表达式){
    语句体;
    }
  14. 首先计算关系表达式的值。
  15. 如果关系表达式的值为true就执行语句体。
  16. 如果关系表达式的值为false就不执行语句体。
  17. 继续执行后面的语句。
    if语句格式1 示例1:
  18. 需求:输入两个数,代表“斗地主”游戏中的牌的点数,分别用变量a和b接收。如果 a 和 b相等,就
    输出“你摸了一个对子”。
  19. 代码:
    public static void main(String[] args) {
    //需求:输入两个数代表“斗地主”游戏中的牌的点数,分别用变量a和b接收。如果 a 和 b
    相等,就输出“你摸了一个对子”。
int a = 0;
int b = 0;
Scanner scanner = new Scanner(System.in);
System.out.print("请输入2个整数,用空格分隔:");
a = scanner.nextInt();
b = scanner.nextInt();
if(a == b) {
System.out.println("你摸了一个对子");
}
System.out.println("无论if是否成立,后面的代码都会执行");
}

if语句格式1 示例2:

  1. 需求:输入3个数,分别用变量a,b,c接收。如果a > b,输出"a > b",如果a > c,输出“a > c”。
  2. 代码:
    if语句格式1 示例3:
  3. 需求:有一个变量num,初始值是23。输入一个整数,如果输入的数字大于23,将num改为输入
    的数。
  4. 代码:
    if语句格式1总结
  5. if 后面的小括号里放的是一个 结果为true或者false的表达式。----通常是关系表达式 或者 逻辑表
    达式。
  6. if条件的值为true,执行后面大括号里面的语句。—大括号里可以写一条或多条语句。
  7. 无论if是否成立,if语句前面的代码、if语句后面的代码都会执行。
    public static void main(String[] args) {
    // 需求:输入3个数,分别用变量a,b,c接收。如果a > b,输出"a > b",如果a > c,
    输出“a > c”。
int a = 0;
int b = 0;
int c = 0;
Scanner scanner = new Scanner(System.in);
System.out.print("请输入3个数,用空格隔开");
a = scanner.nextInt();
b = scanner.nextInt();
c = scanner.nextInt();
if(a > b) {
System.out.println("a > b");
}
if(a > c) {
System.out.println("a > c");
}
System.out.println("无论if是否成立,后面的代码都会执行!");
}
public static void main(String[] args) {
//需求:有一个变量num,初始值是23。输入一个整数,如果输入的数字大于

23,将num改为
输入的数。

int num = 23;
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数:");
int temp = scanner.nextInt();
if(temp > num) {
num = temp;
}
System.out.println("num的值是:" + num);
}

if语句格式2
格式:
执行流程:

  1. 首先计算判定条件的值(往往是关系表达式或逻辑表达式)。
  2. 如果判定条件的值为true,执行if语句体1,否则执行语句体2。
  3. 继续执行后面的语句。
    if语句格式2 示例1:
  4. 需求:输入2个整数,分别用变量a和b接收数据,输出a和b中的最大值。—不使用三目运算符。
  5. 代码:
    if(关系表达式){
    语句体1;
    }else{
    语句体2;
    }
    public static void main(String[] args) {
    //需求:输入2个整数,分别用变量a和b接收数据,输出a和b中的最大值。—不使用三目运
    算符。
    int a = 0;
    if语句格式2 示例2:
  6. 需求:输入一个整数,判断输入的数是不是偶数,如果是偶数,输出"您输入的是一个偶数",如果
    不是偶数,输出"您输入的是一个奇数"。
  7. 代码:
    if语句格式2 示例3:
  8. 需求:输入一个代表年份的数字,判断是不是闰年。(闰年的判断条件是:能被400整除,或者能
    被4整除且不能被100整除)。如果是闰年,输处"xxx年是闰年!“,如果不是闰年,输出"xxx年是
    平年!”。
  9. 代码:
int b = 0;
int max = 0;
Scanner scanner = new Scanner(System.in);
System.out.print("请输入2个整数,用空格进行分隔:");
a = scanner.nextInt();
b = scanner.nextInt();
if(a > b) {
max = a;
}else {
max = b;
}
System.out.println("最大值是:" + max);
}
public static void main(String[] args) {
//需求:输入一个整数,判断输入的数是不是偶数,如果是偶数,输出"您输入的是一个偶",如果不是偶数,输出"您输入的是一个奇数"。
int num = 0;
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数:");
num = scanner.nextInt();
//偶数的判定条件:对2求余,余数是否是0
if(num % 2 == 0) {
System.out.println("您输入的是一个偶数");
}else {
System.out.println("您输入的是一个奇数");
}
}
public static void main(String[] args) {
//需求:输入一个代表年份的数字,判断是不是闰年。(闰年的判断条件是:能被400整除,
或者能被4整除且不能被100整除)
//如果是闰年,输处"xxx年是闰年!"
//如果不是闰年,输出"xxx年是平年!"
int year = 0;
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个代表年份的数字:");
year = scanner.nextInt();
if((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {

System.out.println(year + “年是闰年!”);
if语句格式2 示例4:

  1. 需求:输入一个整数,判断这个数字是不是7的倍数。如果是7的倍数,输出"过",否则输出数字本
    身。
  2. 代码:
    if语句格式2 示例5:
  3. 需求:输入一个100以内的整数,判断这个数字里面是不是包含7。个位为7或者是十位为7。如果
    包含7输出“过”,如果不包含7,直接输出数字本身。
  4. 代码:
    if语句格式2 示例6:
  5. 需求:输入一个100以内的整数,如果这个数字包含7或者是7的倍数,输出"过",否则输出数字本
    身。
  6. 代码:
    }else {
    System.out.println(year + “年是平年!”);
    }
    }
    public static void main(String[] args) {
    //需求:输入一个整数,判断这个数字是不是7的倍数。如果是7的倍数,输出"过",否则输
    出数字本身。
    int num = 0;
    Scanner scanner = new Scanner(System.in);
    System.out.print(“请输入一个整数:”);
    num = scanner.nextInt();
    if(num % 7 == 0) {
    System.out.println(“过”);
    }else {
    System.out.println(num);
    }
    }
    public static void main(String[] args) {
    //需求:输入一个100以内的整数,判断这个数字里面是不是包含7。个位为7或者是十位为
    7。
    //如果包含7输出“过”,如果不包含7,直接输出数字本身。
    int num = 0;
    Scanner scanner = new Scanner(System.in);
    System.out.print(“请输入一个100以内的整数:”);
    num = scanner.nextInt();
    if(num % 10 == 7 || num / 10 == 7) {
    System.out.println(“过”);
    }else {
    System.out.println(num);
    }
    }
    if语句格式2总结
  7. if 后面的小括号里放的是一个 结果为true或者false的表达式。----通常是关系表达式 或者 逻辑表
    达式。
  8. if条件的值为true,执行if后面大括号里面的语句。—大括号里可以写一条或多条语句。
  9. if条件的值为false,执行else后面大括号里面的语句。—大括号里可以写一条或多条语句。
  10. 无论if是否成立,if语句前面的代码、else语句后面的代码都会执行。
    if语句格式3
    格式:
    执行流程:
    public static void main(String[] args) {
    //需求:输入一个100以内的整数,如果这个数字包含7或者是7的倍数,输出"过",否则输
    出数字本身。
    int num = 0;
    Scanner scanner = new Scanner(System.in);
    System.out.print(“请输入一个100以内的整数:”);
    num = scanner.nextInt();
    if(num % 7 == 0 || (num % 10 == 7 || num / 10 == 7)) {
    System.out.println(“过”);
    }else {
    System.out.println(num);
    }
    }
    if(条件表达式1){
    语句体1;
    }else if(条件表达式2){
    语句体2;
    }else if(条件表达式3){
    语句体3;
    }

    else{
    语句体n+1;
    }
  11. 首先计算条件表达式1的值。
  12. 如果条件表达式1的结果为true,执行语句体1。如果条件表达式1的值为false,就计算条件表达式
    2的值。
  13. 如果条件表达式2的结果为true,执行语句体2。如果条件表达式2的值为false,就计算条件表达式
    3的值。
  14. 如果没有任何条件表达式的值为true,则执行语句体n+1。
    if语句格式3 示例1:
  15. 需求:输入一个整数,判断是正数、负数还是0。如果输入的数大于0,输出"您输入的是一个正
    数",如果输入的数小于0,输出"您输入的是一个负数",否则输出"您输入的是0"。
  16. 代码:
    public static void main(String[] args) {
    //需求:输入一个整数,判断是正数、负数还是0。
    //如果输入的数大于0,输出"您输入的是一个正数",如果输入的数小于0,输出"您输入的是
    一个负数",否则输出"您输入的是0"。
    int num = 0;
    Scanner scanner = new Scanner(System.in);
    System.out.print(“请输入一个整数:”);
    num = scanner.nextInt();
    if(num > 0) {
    System.out.println(“您输入的是一个正数”);
    }else if(num < 0) {
    System.out.println(“您输入的是一个负数”);
    }else {
    System.out.println(“您输入的是0”);
    }
    }
    if语句格式3 示例2:
  17. 需求:输入一个1~7之间的整数(含1和7),如果输入的是1,就输出"今天是星期一",如果输入的
    是2,就输出"今天是星期二",…,如果输入的是7,就输出"今天是星期天"。如果输入的是其他数
    字,就输出"输入的数字非法"。
  18. 代码:
    if语句格式3 示例3:
  19. 需求:根据考试成绩计算应该给与什么奖励:考试100分,奖励一架航拍遥控飞机;考试90分~99
    分,奖励游乐场玩一次;考试80分89分,奖励玩具赛车一辆;考试70分79分,奖励玩手机30分
    钟;考试70分以下,挨揍一顿。
  20. 代码:
    public static void main(String[] args) {
    //需求:输入一个1~7之间的整数(含1和7),如果输入的是1,就输出"今天是星期一",
    //如果输入的是2,就输出"今天是星期二",…,如果输入的是7,就输出"今天是星期
    天"。
    //如果输入的是其他数字,就输出"输入的数字非法"
    int day = 0;
    Scanner scanner = new Scanner(System.in);
    System.out.print(“输入一个1~7之间的整数(含1和7):”);
    day = scanner.nextInt();
    if(day == 1) {
    System.out.println(“今天是星期一”);
    }else if(day == 2) {
    System.out.println(“今天是星期二”);
    }else if(day == 3) {
    System.out.println(“今天是星期三”);
    }else if(day == 4) {
    System.out.println(“今天是星期四”);
    }else if(day == 5) {
    System.out.println(“今天是星期五”);
    }else if(day == 6) {
    System.out.println(“今天是星期六”);
    }else if(day == 7) {
    System.out.println(“今天是星期日”);
    }else {
    System.out.println(“输入的数字非法”);
    }
    }
    public static void main(String[] args) {
    //需求:根据考试成绩计算应该给与什么奖励:
    //考试100分,奖励一架航拍遥控飞机;考试90分~99分,奖励游乐场玩一次;
    //考试80分89分,奖励玩具赛车一辆;考试70分79分,奖励玩手机30分钟;考试70分以
    下,挨揍一顿。
    int score = 0;
    Scanner scanner = new Scanner(System.in);
    System.out.print(“请输入考试成绩:”);
    score = scanner.nextInt();
    if(score == 100) {
    System.out.println(“考试” + score + “分,奖励一架航拍遥控飞机!”);
    if语句格式3 示例4:
  21. 某体育彩票中心推出优惠充值活动,充值50元送20元,充值100元送50元,充值500元送300元。
    如果账户余额是26元,请输入一个充值金额,计算最终账户余额。
  22. 代码:
    if语句格式3 示例5:
  23. 出租车计费标准为:3公里以内10元,3公里以后每1公里加2元,超过15公里,每1公里加3元。请
    输入一个最终公里数,计算应付的车费。
  24. 代码:
    }else if(score >= 90) {
    System.out.println(“考试” + score + “分,奖励游乐场玩一次!”);
    }else if(score >= 80) {
    System.out.println(“考试” + score + “分,奖励玩具赛车一辆!”);
    }else if(score >= 70) {
    System.out.println(“考试” + score + “分,奖励玩手机30分钟!”);
    }else {
    System.out.println(“考试” + score + “分,挨揍一顿!”);
    }
    }
    public static void main(String[] args) {
    //某体育彩票中心推出优惠充值活动,充值50元送20元,充值100元送50元,充值500元送
    300元。
    //如果账户余额是26元,请输入一个充值金额,计算最终账户金额。
    int money = 26;
    Scanner scanner = new Scanner(System.in);
    System.out.print(“请输入充值金额:”);
    int num = scanner.nextInt();
    if(num >= 500) {
    money += (num + 300);
    }else if(num >= 100) {
    money += (num + 50);
    }else if(num >= 50) {
    money += (num + 20);
    }else {
    money += num;
    }
    System.out.println(“充值成功,当前账户余额是:” + money);
    }
    public static void main(String[] args) {
    //出租车计费标准为:3公里以内10元,3公里以后每1公里加2元,超过15公里,每1公里加3
    元。
    //请输入一个最终公里数,计算应付的车费。
    int distance = 0;
    int pay = 0;
    Scanner scanner = new Scanner(System.in);
    System.out.print(“请输入里程数:”);
    distance = scanner.nextInt();
    if(distance > 15) {
    if语句格式3 示例6:
  25. 出租车计费标准为:3公里以内10元,3公里以后每1公里加2元,超过15公里,每1公里加3元,行
    驶过程中每等待5分钟,需要增加2元(等待12分钟,加4元,非6元)。请输入一个最终公里数和
    行驶中的等待时间,计算应付的车费。
  26. 代码:
    if语句格式3总结
  27. 首先计算条件表达式1的值。
  28. 如果条件表达式1的结果为true,执行语句体1。如果条件表达式1的值为false,就计算条件表达式
    2的值。
  29. 如果条件表达式2的结果为true,执行语句体2。如果条件表达式2的值为false,就计算条件表达式
    3的值。
  30. 如果没有任何条件表达式的值为true,则执行语句体n+1。
    pay = (distance - 15) * 3 + (15 - 3) * 2 + 10;
    }else if(distance > 3) {
    pay = (distance - 3) * 2 + 10;
    }else {
    pay = 10;
    }
    System.out.println(“您的乘车里程是” + distance + “公里,费用是” + pay +
    “元。”);
    }
    public static void main(String[] args) {
    //出租车计费标准为:3公里以内10元,3公里以后每1公里加2元,超过15公里,每1公里加3
    元,
    //行驶过程中每等待5分钟,需要增加2元(等待12分钟,加4元,非6元)。
    //请输入一个最终公里数和行驶中的等待时间,计算应付的车费。
    int distance = 0;
    int waitingTime = 0;
    int pay = 0;
    Scanner scanner = new Scanner(System.in);
    System.out.print(“请输入里程数:”);
    distance = scanner.nextInt();
    System.out.print(“请输入行驶中的等待时间:”);
    waitingTime = scanner.nextInt();
    if(distance > 15) {
    pay = (distance - 15) * 3 + (15 - 3) * 2 + 10;
    }else if(distance > 3) {
    pay = (distance - 3) * 2 + 10;
    }else {
    pay = 10;
    }
    pay += (waitingTime / 5) * 2;
    System.out.println(“您的乘车里程是” + distance + “公里,行驶中的等待时长是”
  • waitingTime + “分钟,费用是” + pay + “元。”);
    }
    (4)if语句总结
  1. if语句是编程中最常用的语句。
  2. 无论是哪种if语句格式,判断条件都是 条件表达式或者逻辑表达式。
  3. 要学会根据情况分析使用哪种if语句格式。
    switch…case语句
    switch…case分支语句,也被称为多路分支语句。
    switch本身的含义是开关。在Java中switch…case语句很像生活中的开关,按不同的开关按钮,有不同的
    效果。
    switch…case的语法格式
    switch(表达式){
    case 值1:
    语句体1;
    break;
    case 值2:
    语句体2;
    break;
    case 值3:
    语句体3;
    break;

    default:
    语句体n+1;
    break;
    }
    switch…case的执行流程
  4. 计算switch表达式的值。注意:与if语句不同,不在是true和false,而是数值、字符、字符串等。
  5. 表达式的值与某case的值一样时,执行对应case中的语句体。
  6. break用于结束switch语句,继续执行switch语句后面的代码。
  7. 如果没有任何一个case的值和表达式的值一致,执行default对应的语句体。default表示其他情
    况,即除了罗列的case之外的所有情况。
    switch…case示例:
    switch…case示例1:
  8. 需求:输入一个1~7之间的整数(含1和7),如果输入的是1,就输出"今天是星期一",如果输入的
    是2,就输出"今天是星期二",…,如果输入的是7,就输出"今天是星期天"。如果输入的是其他数
    字,就输出"输入的数字非法"。(使用switch…case来实现。)
  9. 代码:
    public static void main(String[] args) {
    //需求:输入一个1~7之间的整数(含1和7),如果输入的是1,就输出"今天是星期一",
    //如果输入的是2,就输出"今天是星期二",…,如果输入的是7,就输出"今天是星期
    天"。
    //如果输入的是其他数字,就输出"输入的数字非法"。(使用switch…case来实现。)
    int day = 0;
    Scanner scanner = new Scanner(System.in);
    System.out.print(“请输入1~7之间的数字(含1和7):”);
    day = scanner.nextInt();
    switch(day) {
    case 1:
    System.out.println(“今天是星期一。”);
    switch…case示例2:
  10. 豆瓣电影中有很多分类,比如:正在热映、每周排行榜、北美排行榜、国产排行榜、高分榜等。根
    据用户输入的字符串,输出对应的榜单名称。hot代表正在热映、weekly代表每周排行榜、us代表
    北美排行榜、china代表国产排行榜、highScore代表高分排行榜,输入其他内容,输出"输入有
    误!"。
  11. 代码:
    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;
    }
    }
    public static void main(String[] args) {
    //豆瓣电影中有很多分类,比如:正在热映、每周排行榜、北美排行榜、国产排行榜、高分榜
    等。
    //根据用户输入的字符串,输出对应的榜单名称。hot代表正在热映、weekly代表每周排行
    榜、
    //us代表北美排行榜、china代表国产排行榜、highScore代表高分排行榜,输入其他内
    容,输出"输入有误!"。
    String category = “”;
    Scanner scanner = new Scanner(System.in);
    System.out.print(“请输入分类:”);
    category = scanner.nextLine();
    switch(category) {
    case “hot”:
    System.out.println(“正在热映”);
    break;
    case “weekly”:
    System.out.println(“每周排行榜”);
    break;
    case “us”:
    System.out.println(“北美排行榜”);
    break;
    switch…case示例3:
  12. 需求:从键盘输入一个代表月份的数字,根据输入的结果,输出这个月有多少天(假定是平年)?
    例如:1月31天,2月28天,3月31天…
  13. 代码:
    case “china”:
    System.out.println(“国产排行榜”);
    break;
    case “highScore”:
    System.out.println(“高分排行榜”);
    break;
    default:
    System.out.println(“输入有误!”);
    break;
    }
    }
    public static void main(String[] args) {
    //需求:从键盘输入一个代表月份的数字,根据输入的结果,输出这个月有多少天(假定是平
    年)?
    //例如:1月31天,2月28天,3月31天…
    int month = 0;
    Scanner scanner = new Scanner(System.in);
    System.out.print(“请输入一个月份:”);
    month = scanner.nextInt();
    switch(month) {
    case 1:
    System.out.println(month + “月有31天。”);
    break;
    case 2:
    System.out.println(month + “月有28天。”);
    break;
    case 3:
    System.out.println(month + “月有31天。”);
    break;
    case 4:
    System.out.println(month + “月有30天。”);
    break;
    case 5:
    System.out.println(month + “月有31天。”);
    break;
    case 6:
    System.out.println(month + “月有30天。”);
    break;
    case 7:
    System.out.println(month + “月有31天。”);
    break;
    case 8:
    System.out.println(month + “月有31天。”);
    break;
    case 9:
    System.out.println(month + “月有30天。”);
    break;
    switch…case语句中,switch后面的表达式的值是一个数值或者字符或者字符串。
    表达式的值对应哪个case,就跳转到对应的case去执行。
    如果没有任何一个case和表达式的值对应,就执行default对应的语句体。default一般写在所有
    case的后面。
    default可以省略不写,相当于不处理其他情况。
    break关键字
    break关键字有2个用途:
  14. 用于switch…case语句中的case语句块里,作用是结束switch的执行。
  15. 用于循环结构,结束循环。—循环的时候讲。
    case中也可以不写break,不写break的话,switch不会结束执行,而是顺序往下执行代码,直到遇到
    break结束switch语句(或者顺序执行完整个switch…case语句)。
    除非特殊需求需要省去break,否则每个case都要写上break。
    break示例1:
  16. 需求:从键盘输入一个代表月份的数字,根据输入的结果,输出这个月有多少天(假定是平年)?
    例如:1月31天,2月28天,3月31天…
  17. 代码:
    case 10:
    System.out.println(month + “月有31天。”);
    break;
    case 11:
    System.out.println(month + “月有30天。”);
    break;
    case 12:
    System.out.println(month + “月有31天。”);
    break;
    default:
    System.out.println(“输入的月份非法。”);
    break;
    }
    }
    public static void main(String[] args) {
    //需求:从键盘输入一个代表月份的数字,根据输入的结果,输出这个月有多少天(假定是平
    年)?
    //例如:1月31天,2月28天,3月31天…
    int month = 0;
    Scanner scanner = new Scanner(System.in);
    System.out.print(“请输入一个月份:”);
    month = scanner.nextInt();
    switch(month) {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    break示例2:
  18. 需求:从键盘输入一个代表月份的数字,根据输入的结果,判断这个月份是什么季节。春季
    (35)、夏季(68)、秋季(911)、冬季(122)。
  19. 代码:
    case 10:
    case 12:
    System.out.println(month + “月有31天。”);
    break;
    case 2:
    System.out.println(month + “月有28天。”);
    break;
    case 4:
    case 6:
    case 9:
    case 11:
    System.out.println(month + “月有30天。”);
    break;
    default:
    System.out.println(“输入的月份非法。”);
    break;
    }
    }
    public static void main(String[] args) {
    //需求:从键盘输入一个代表月份的数字,根据输入的结果,判断这个月份是什么季节。
    //春季(35)、夏季(68)、秋季(911)、冬季(122)。
    int month = 0;
    Scanner scanner = new Scanner(System.in);
    System.out.print(“请输入一个月份:”);
    month = scanner.nextInt();
    switch(month) {
    case 3:
    case 4:
    case 5:
    System.out.println(month + “月属于春季”);
    break;
    case 6:
    case 7:
    case 8:
    System.out.println(month + “月属于夏季”);
    break;
    case 9:
    case 10:
    case 11:
    System.out.println(month + “月属于秋季”);
    break;
    case 12:
    case 1:
    case 2:
    System.out.println(month + “月属于冬季”);
    break;
    default:
    case连写的情况适用于多个case执行同样的代码。即省略break,不结束switch,让代码继续往下
    执行。
    其他情况下,每个case都要有自己单独的代码和break
    switch…case总结
  20. switch…case语句和if语句作用一样,都是实现分支。
  21. swicth…case语句中通过break关键字结束switch的执行。
  22. switch中表达式的值决定了进入哪个case执行。
  23. 没有对应的case就执行default,default一般写在所有case后面。
    分支结构总结
    在Java语言中,分支结构一共有2种:if语句和switch…case语句。
    if语句有3种书写格式:if、if…else、if…else if…else if…else
    无论哪种if格式,if后面表达式的值必须是一个boolean值,即true或false。
    switch…case语句是多路分支,根据switch的值,决定进哪个case执行代码。没有对应的case就执行
    default。
    break用于结束switch的执行。
    虽然可以省略break,但要慎重。
    System.out.println(“您输入的月份有误!”);
    break;
    }
    }

你可能感兴趣的:(JavaSE学习阶段,java,算法)