Java分支结构

第1关:Java分支结构之多重if

任务描述

本小节需要你实现一个星级成绩评定系统,效果如下:

相关知识

若要完成本小节的任务,需要你先了解多重If语句相关知识。

多重If语句

在条件 1 不满足的情况下,才会进行条件 2 的判断;当前面的条件均不成立时,才会执行 else 块内的代码,例如:如果一个人年龄介于 35岁至 60 岁之间,就是“中年”;如果年龄介于 18 岁至 35 岁之间,则是“青年”; 18 岁以下则是“少年”

如下:

  1. if (<条件1>) {
  2. <条件1成立执行的代码>
  3. }else if(<条件2>){
  4. <条件2成立执行的代码>
  5. }else if(<条件3>){
  6. <条件3成立执行的代码>
  7. }else{
  8. <以上条件都不成立执行的代码>
  9. }

执行过程:

eg:

  1. int age = 37;
  2.  
  3. if(age < 18){
  4. System.out.println("少年");
  5. }else if(age >=18 && age < 35){
  6. System.out.println("青年");
  7. }else if(age >= 35 && age <60){
  8. System.out.println("中年");
  9. }else{
  10. System.out.println("老年");
  11. }

编程要求

在start-end区域在Begin-End区域编写一个星级成绩评定系统,规则如下:

  • 90分及以上:五星成绩。
  • 80-90分(包括80分,不包含90分): 四星成绩。
  • 70-80分(包括70分,不包含80分):: 三星成绩。
  • 60-70分(包括60分,不包含70分):: 俩星成绩。
  • 60分以下(不包含60分)::无星成绩。

效果图如下:

测试说明

我会对你编写的程序测试五次,不要偷懒哦!

开始吧,骚年!

package step3;




import java.util.Scanner;




public class HelloStep3 {

    public static void main(String[] args) {

        System.out.println("星级成绩评定系统");

        System.out.println("请输入成绩:");

        Scanner sc = new Scanner(System.in);

        /******start******/

 int score = sc.nextInt(); // 读取输入的成绩值




 if(score >= 90){//age >=90 && age < 80

 System.out.println("*****五星成绩");

 }else if(score >=80 && score < 90){

 System.out.println("****四星成绩");

 }else if(score >= 70 && score <80){

 System.out.println("***三星成绩");

 }else if(score >= 60 && score <70){

 System.out.println("**俩星成绩");

 }else{

 System.out.println("无星成绩");

 }

        /******end******/

    }

}


第2关:Java分支结构之Switch

任务描述

本关需要你使用Switch完成一个能根据用户输入的月份,给出对应的季节的小程序。效果图如下:

相关知识

当需要对选项进行等值判断时,使用 switch 语句会让我们的代码更加简洁明了。

Switch语句

如果说我们前面学习的if...else可以比作判断题的话,那我们接下来要掌握的switch语句就可以看做是一个选择题了。例如,根据输入的选项决定中午吃什么,选1,吃黄焖鸡米饭,选2,吃牛肉盖饭,选3,吃螺蛳粉,选其他(default)就不吃。

  1. int input = 3;
  2. switch (input) {
  3. case 1:
  4. System.out.println("吃黄焖鸡米饭");
  5. break;
  6. case 2:
  7. System.out.println("吃牛肉盖饭");
  8. break;
  9. case 3:
  10. System.out.println("吃螺蛳粉");
  11. break;
  12. default:
  13. System.out.println("不吃");
  14. break;
  15. }
  16. //看完这段代码,能告诉我今天中午吃什么吗?

在上述案例中,input就像我们在做选择题时填的答案,case后面的值就相当于选项,一个case代表着一种情况。

语法:

  1. switch(表达式){
  2. case 常量1:
  3. <若干语句1>
  4. break;
  5. case 常量2:
  6. <若干语句2>
  7. break;
  8. ......
  9. default:
  10. <不满足上述所有情况执行的代码>
  11. break;
  12. }

执行过程:当switch后表达式的值和case语句后的值相同时,从该位置开始向下执行,直到遇到break语句或者switch语句块结束(即遇见"}"结束);如果没有匹配的case语句则执行default块的代码。

思考

根据上述知识,来做个思考题。 第一题:

第二题:

能告诉我这两段代码分别输出的是什么吗?在评论区贴出答案吧!

告诉你几个小秘密
  1. switch 后面小括号中表达式的值必须是整型或字符型(在8版本之后字符串类型也可以作为表达式的值);
  2. case 后面的值可以是常量数值,如 1、2;也可以是一个常量表达式,如 2+2 ;但不能是变量或带有变量的表达式,如 a * 2;
  3. default 块可以出现在任意位置,也可以省略。

编程要求

请在start-end区域中,用switch语句在Begin-End区域补全代码,实现根据月份输出季节的功能。 规则如下:

  • 一年有四季 春季(3,4,5)夏季(6,7,8)秋季(9,10,11) 冬季(12,1,2)

 

测试说明

我会对你的程序进行测试,如下: 测试输入:1 预期输出:1月是冬天

测试输入:3 预期输出:3月是春天

测试输出:6 预期输出:6月是夏天

开始你的任务吧!

package step4;




import java.util.Scanner;




public class HelloSwitch {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

       

        System.out.println("请输入月份:");

       

        int input = sc.nextInt();   //获取输入的月份

       

        //通过输入的月份来判断当前季节并输出

        /*****start*****/




        String season;

        switch (input) {

            case 1:

            case 2:

            case 12:

                season = "冬天";

                break;

            case 3:

            case 4:

            case 5:

                season = "春天";

                break;

            case 6:

            case 7:

            case 8:

                season = "夏天";

                break;

            case 9:

            case 10:

            case 11:

                season = "秋天";

                break;

            default:

                season = "无效的月份";

                break;

        }




        System.out.println(input + "月是" + season);




        /*****end*****/

       

    }

}

 

posted @ 2023-05-18 20:16  梦羽儿  阅读(67)  评论(0编辑  收藏  举报