Day3-分支和循环

选择分支结构

概念

根据布尔值选择性的执行某个分支内容

if分支

语法

if(布尔表达式){
    //逻辑代码
}

执行

        int age=18;
        if(age<18){
            System.out.println("你真帅");
        }

if else分支

语法

if(布尔表达式){
    //if中的逻辑代码
}else{
    //else中的逻辑代码
}

运行

多重if else分支

语法

if(布尔表达式1){
    //逻辑代码1
}else if(布尔表达式2){
    //逻辑代码2
}else if(布尔表达式3){
    //逻辑代码3
}else{
    //else中的逻辑代码
}

运行

  • 多重分支结构是一个整体,只会执行其中一个逻辑代码,比较顺序为从上至下

            Scanner sc=new Scanner(System.in);
            System.out.println("请输入你的成绩:");
            double score=sc.nextDouble();
            if(score==100){
                System.out.println("劳斯莱斯幻影");
            }else if(score>=80 &&  score<=99){
                System.out.println("布加迪");
            }else if(score>=60  && score<=79){
                System.out.println("大众");
            }else if(score<60 && score>=0){
                System.out.println("自行车");
            }else{
                System.out.println("成绩输入有误");
            }

嵌套if分支

语法

if(外层布尔表达式){
    if(内层布尔表达式){
         //内层if中的逻辑代码
    }else{
        //内层else中的逻辑代码
    }
}else{
    //外层else逻辑代码
}
  • 在逻辑完整的前提下,对于嵌套层数没有要求

运行

        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你的成绩:");
        double score=sc.nextDouble();
        if(score==100){
            System.out.println("劳斯莱斯幻影");
        }else if(score>=80 &&  score<=99){
            System.out.println("布加迪");
        }else if(score>=60  && score<=79){
            System.out.println("大众");
        }else if(score<60 && score>=0){
            //嵌套分支判断
            if(score>=50  && score<60){
                System.out.println("五菱宏光");
            }else{
                System.out.println("自行车");
            }
            
        }else{
            System.out.println("成绩输入有误");
        }

switch分支

概念

作用于值确定的情况下,用于对固定值进行分支选择

语法

switch(具体值变量/拥有具体值结果的表达式){
     case 值1:
         //逻辑代码1
         break;
     case 值2:
         //逻辑代码2
         break;
    default:
        //逻辑代码
}

运行

使用

  1. 能够接受比较的数据类型:byte、short、char、int、String(JDK1.7)

  2. switch分支能完成的操作多重if一定可以,但是反之则不一定

  3. 如果case之后没有break,会执行到接下来的内容

  4. default约等于多重if中的else

  5. case比较结果为布尔类型,如果有一个case结果为true,其余case不会再进行布尔判断

  6. case值不能相同

//实现数字和汉字的对等输出
        int n=4;
        switch(n){
            case 1://if(n==1)
                System.out.println("一");
                break;
            case 2:
                System.out.println("二");
                break;
            case 3:
                System.out.println("三");
                break;
            default:
                System.out.println("输入有误");
        }
  1. 多个case可以共用一段逻辑代码

            switch(n){
                case 1:
                case 3:
                case 5://if(n==1 ||n==3 ||n==5)
                    System.out.println("31天");
                    break;
                default:
                    System.out.println("输入有误");
            }

局部变量

概念

定义在函数/方法内部的变量

使用

  1. 作用范围:从定义那一行开始,到所直属的代码块{}结束

  2. 在同一作用范围内,变量名不能重名

循环结构

概念

在满足某个条件的前提下,重复执行某一个逻辑代码

while循环

语法

while(布尔表达式){
    //循环体(操作语句)
}

循环组成条件

循环开始值、循环条件、循环迭代语句(对循环开始值进行变化)、循环体(循环真正执行的操作语句)

        int i=1;//循环开始值,定义在循环上方
        while(i<=100){//循环条件
            System.out.println("王震正在跑第"+i+"圈"); //操作语句
            i++;//i+=1; 迭代语句,写在操作语句下方
        }

循环流程

开始值->循环条件->为true->执行操作语句->迭代语句->循环条件->直到为false->结束循环

  • 开始值只会执行一次

while的执行特点

先判断,再执行(只有当满足循环条件时,才会执行操作语句)

do-while循环

do-while的执行特点

先执行,再判断(无论如何,都会先执行一次操作语句,根据操作语句执行结果决定是否继续循环)

语法

do{
    //操作语句
}while(循环条件);
        Scanner sc=new Scanner(System.in);
        int num;//用来接收评分值
        int i=1;//接收圈数
        do{
            System.out.println("王震正在跑第"+i+"圈"); //操作语句
            System.out.println("请对本次跑步进行评分:");
            num=sc.nextInt();
            i++;
        }while(num<=80);//循环条件

循环流程

操作语句->循环条件->为true->操作语句->循环条件->.直到为false->循环结束

for循环

语法

for(循环开始值;循环条件;循环迭代语句){
    //操作语句
}
        for(int i=1;i<=5;i++){
            System.out.println("王震正在跑第"+i+"圈");
        }

对比while

  • 操作可以互等

  • while更适用于循环次数不确定的情况

  • for更适用于循环次数确定的情况

死循环

如果循环条件永远为true,则循环不会停止,就会导致死循环

使用

小括号中的组成三部分可以省略,但是必须通过;进行语法占位

for(;;){
    //操作语句
}

流程控制

break

跳出当前所有循环,当前循环直接停止

for(int i=1;i<=10;i++){
            if(i==5){
                break;
            }
            System.out.println("王震正在跑第"+i+"圈");//1234
}

continue

跳出本次循环,直接进行下一次循环判断

        for(int i=1;i<=10;i++){
            if(i==5){
                //break;
                continue;
            }
            System.out.println("王震正在跑第"+i+"圈");//1234678910
        }
  • 不能作用于switch,但是break可以

嵌套循环

概念

在一层循环当中再次定义循环,只要逻辑完整,嵌套层数没有要求,但是不建议超过两层

使用

  1. 外层循环代表行,内层循环代表列 (作用于图形输出)

  2. 外层循环执行一次,内层循环执行一遍

//输出一个由*组成的5行7列的长方形
        for(int i=1;i<=5;i++){//外层:输出行  i=1
            for(int j=1;j<=7;j++){//内层:输出列
                System.out.print("*");
            }
            System.out.println();
        }
  1. 非图形输出的情况下,使用嵌套循环的关键就是寻找内层循环和外层循环的关联关系

  2. break和continue只能操作自身所直属的循环

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木泽锐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值