0
点赞
收藏
分享

微信扫一扫

须知少年凌云志,曾许人间第一流

菜菜捞捞 2022-02-25 阅读 54
java

第三天   
    switch  语句格式和说明
    格式:
    switch(表达式){
        case值1:
                语句体1;
                break;
        case值2:
                语句体2;
                break;
        .......
        default:
                语句体n+1;
                break;
    }
    格式说明:
    表达式:(将要被匹配得值)取值为byte,int,short,JDK5以后可以是枚举,JDK7以后可以是String.
    case:后面跟得是要和表达式进行比较得值(被匹配得值)。
    break:表述中断,结束得意思,用来结束switch语句
    default:表示所有情况都不匹配得时候,就执行该处得内容,和上一天说的if语句得else相似
    
    执行流程:
    首先计算表达式得值
    依次和case后边的值进行比较,如果有对应得值,就会执行相应得语句,在执行过程中,遇到break就会结束
    如果所有得case后面得值和表达式得值都不匹配,就会执行default里面得语句,然后结束掉
    
    
    案例   
    需求  输入对应得值,显示星期几,若无对于,输出您输入得有误
    代码:
     Scanner sc= new Scanner(System.in);
     System.out.println("请输入星期数");
        int a =sc.nextInt();
        switch (a){
            case 1:
            System.out.println("今天星期一");
                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("n您输入得有误,请重新输入");
        }
    注意事项:case后边给出的值不允许重复
    case后的值只能是常量,不能是变量
    
    switch 穿透
    现象:当开始case穿透,后续得case就不会具有执行匹配得效果,内部得语句都会被执行,知道看见case或者将整体得switch语句执行完毕才会结束
    case穿透是如何产生得:
    如果switch语句中,case省略了break语句,就会开始case穿透
    代码:
    Scanner sc= new Scanner(System.in);
    System.out.println("请输入星期数");
        int a =sc.nextInt();
        switch (a){
            case 1:
            System.out.println("工作日");
            case 2:
                System.out.println("工作日");
            case 3:
                System.out.println("工作日");
            case 4:
                System.out.println("工作日");
            case 5:
                System.out.println("工作日");
                break;
            case 6:
                System.out.println("休息日");
            case 7:
                System.out.println("休息日");
                break;
            default:
                System.out.println("n您输入得有误,请重新输入");
        }
        缺点:代码臃肿,具有重复代码
        代码优化:减少内存
        Scanner sc= new Scanner(System.in);
        System.out.println("请输入星期数");
        int a =sc.nextInt();
        switch (a){
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                System.out.println("工作日");
                break;
            case 6:
            case 7:
                System.out.println("休息日");
                break;
            default:
                System.out.println("n您输入得有误,请重新输入");
        }
        三种循环
        特征:具有重复得开始和停止得标志
        for循环!!(重要)
        格式(初始化语句;条件判断语句;条件控制语句){
            循环体语句;
        }
        初始化语句:就是定义一个变量而已  //只执行一次
        条件判断语句:返回一个true或者false  true则条件控制语句增加一次,false则停止
        条件控制语句:变量自增或自减
        执行流程:
        1.执行初始化语句
        2.执行条件判断语句,看其结果是true还是false,如果是false,循环停止,如果是true,循环继续
        3.执行循环语句
        4.执行条件控制语句
        5.回到第二步
        案例:
        跑步三圈 到第三圈停止
        for (int i = 0; i < 3; i++) {
            System.out.println("加油跑,减肥");
        }
        //减肥这种事代码做了我就不做了
        初始化语句   i=0  开始0圈开始
        条件判断语句  i<3   i<3 false则停止  true则条件控制语句增加一次
        i++   ++ 每次加1  会执行三次  打印三次语句
        案例1:
        需求:在控制台输出1-5
        思路:进行反复得动作  使用循环  初始化语句从1开始  从一到五开始,设置判断条件没有五得时候继续执行,超过五就结束,将反复进行得数据写入循环内部输出语句,打印对应数据
        for循环  int i=1  i<=5   i++   System.out.println(i);   打印i
         自己动手 丰衣足食  有需要可以问哦
        案例2:
        需求:再输出台打印5-1得数据
        思路:进行反复得动作  使用循环  初始化语句从5开始  从一开始,设置判断条件没有等于1得时候继续执行,等于1就结束,将反复进行得数据写入循环内部输出语句,打印对应数据
        for循环 int i=5  i<=1 i--  System.out.println(i);   打印i
         for (int i = 5; i >=1 ; i--) {
            System.out.println(i);
        }
        注意:循环中,控制循环的变量,可以作为循环组织到循环体中使用得
              循环的条件不要局限的认为就是++  还有--
        案例3:
        需求:1-5之间得数据和,并把求和结果打印再输出台
        分析:求和得最终结果必须保存起来,需要定义一个变量,用于保存求和得结果,初始值为0
              再循环中初始化一个变量从1开始,不断++,增长到5
              循环得过程,将能代表(1-5)得i变量和SUM进行累加
              当循环结束时,将最终结果打印出来
        代码:
              int sum=0;
              for (int i = 1; i <=5 ; i++) {
                    sum = sum+i;
                    sum +=i;
                 System.out.println("数据一到五得和"+sum);
                }
        案例4:
        求一道五得偶数和
        使用if语句
            代码:
          int sum=0;
        for (int i = 1; i <=100 ; i++) {
              //sum = sum+i;
            if (i%2==0){
                sum +=i;
                System.out.println("数据一到一百得偶数和"+sum);//得到得是他的总和
            }
            System.out.println("数据一到一百得偶数和"+sum);//得到得时它每一次相加得和
        }
        //如果想得到它得奇数和 把if得条件判断语句0改为1
        案例4:
        需求:再控制台输出所有得水仙花数  水仙花数为个位 十位 百位数得立方 和等于他的原数   例如:371  3*3+7*3+1*3
        明天附答案   
        while循环  
        基本格式
        while(条件判断语句){
            循环体语句;
        }
        完整格式:
        初始化语句
        while(条件判断语句){
            循环体语句;
            条件控制语句;
        }
        执行流程:
        1.执行初始化语句
        2.执行条件判断语句,看其结果是true还是false,如果是false,循环停止,如果是true,循环继续
        3.执行循环体语句
        4.执行条件控制语句
        5.回到第二步
        案例:
        需求:在控制台打印一到一百得数
        for循环
        for (int i = 1; i <=100 ; i++) {
            System.out.println(i);
        }
        while循环
        int i=1;
        while(i<=100){
            System.out.println(i);
            i++;
        }
        注意()后不要加;,;是语句得结束  
        案例2:
        世界最高的山珠穆朗玛峰,8844.43米=8844430毫米  一张纸0.1毫米厚
        需求:折多少次可以完成
        明天附答案
        do...while循环
        基本格式
        do{
            循环体语句;
        }while(条件判断语句);
        完整格式:
        初始化语句:
        do{
            循环体语句;
            条件控制语句;
        }while(条件判断语句);
        执行流程:
        1.执行初始化语句
        2.执行循环体语句
        3.执行条件控制语句
        4.执行条件判断语句,看其结果是true还是false,如果是false,循环停止,如果是true,循环继续
        5.回到第二步
        代码:
        int i =1;
        do{
            System.out.printIn("我真帅");
        }while(i<=100);
        
        三种循环得区别
        for循环和while循环西安判断条件是否成立,然后决定是否执行循环体(先判断后执行)
        do...while循环先执行一次循环体,然后判断条件是否成立,是否执行循环体(先执行后判断)
        
        for循环和while循环的区别:
        条件控制语句所控制的自增变量,因为属于for循环得语法结构中,再for循环结束后,就不能再访问了
        条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
        三种循环使用场景
        明确循环次数  推荐使用for循环
        不明确循环次数,使用while循环
        do...while循环,很少使用
        死循环 
        :无限循环    
        三种格式
        for(;;){
        }
        while(true){
        }
        do{
        }while(true);
        跳转控制语句
        示例1:
        电梯1到24层  4层不停
        for (int i = 0; i <=24; i++) {
            System.out.println(i+"层到了");
        }
        使用continue
        for (int i = 0; i <=24; i++) {
            if (i==4){
                continue;
            }
            System.out.println(i+"层到了");
        }
        实例2:
        模拟20岁工作到80岁,60岁退休
        for (int i = 20; i <=80; i++) {
            System.out.println(i+"岁正在上班");
        }
        使用break;
        for (int i = 20; i <=80; i++) {
            if(i==60){
                break;
            }
            System.out.println(i+"岁正在上班");
        }
        
        小结:continue用在循环中,基于条件控制,跳过每次循环体执行得内容,继续下次得执行
               break   用在循环中,基于条件控制,种植循环体得执行,就是结束掉整个循环
               
        Random  
        作用随机生成一个随机数   例如:随机点名器
        用法和键盘录入相似
        1.导包  import java.util.Random;//导包必须在类定义得上面
        2.创建对象 Random r= new Random();
        3.获取随机数int num=r.nextInt(10);//数据范围0-10 包括0  不包括10

好好休息,明天继续

举报

相关推荐

0 条评论