20天java-程序流程控制

程序中最经典的三种执行顺序

一、分支结构

1、if分支(三种模式)

package com.itheima.branch;

public class ifDome1 {
    public static void main(String[] args) {
        double t = 38;
        if(t > 37){
            System.out.println("温度异常");
        }
        double money = 19;
        if(money >=90){
            System.out.println("发红包成功");
        }else{
            System.out.println("余额不足");
        }
        int score = 101;
        if(score<60 & score>=0){
            System.out.println("D");
        }else if(score>=60 & score<80){
            System.out.println("C");
        }else if(score>=80 & score<90){
            System.out.println("B");
        }else if(score>=90 & score<=100){
            System.out.println("A");
        }else{
            System.out.println("您录入的分数有问题");
        }
    }
}

2.Switch分支

switch分支的执行流程
①先执行表达式的值,再拿着这个值去与case后的值进行匹配。
②与哪个case后的值匹配为true就执行哪个case块的代码,遇到break就跳出switch分支。
③如果全部case后 的值与之匹配都是false,则执行default块的代码。

package com.itheima.branch;

public class SwitchDome2 {
    public static void main(String[] args) {
        String week = "周三";
        switch (week){
            case "周一":
                System.out.println("埋头苦干,解决bug");
                break;
            case "周二":
                System.out.println("今晚吃鸡");
                break;
            case "周三":
                System.out.println("请求大牛程序员帮忙");
                break;
            case "周四":
                System.out.println("主动帮助新来的女程序解决bug");
                break;
            case "周五":
                System.out.println("请求大牛程序员帮忙");
                break;
            case "周六":
                System.out.println("与王婆介绍的小芳相亲");
                break;
            case "周日":
                System.out.println("郁郁寡欢、准备上班。");
                break;
            default:
                System.out.println("输入有误");
                break;
        }

    }
}

if、switch的比较,以及各自适合什么业务场景?
●if在功能上远远强大于switch。
●当前条件是区间的时候,应该使用if分支结构。
●当条件是与一个一个的比较的时候,switch分支更合适: 格式良好,性能较好,代码优雅。

使用switch分支的几点注意事项
①表达式类型只能是byte、short、 int、 char, JDK5开始支持枚举,JDK7开始支持String不支持double(会有不精确的现象)、float、 long
②case给出的值不允许重复,且只能是字面量,不能是变量(怕和其他CASE数值重复)。
③正常使用switch的时候,不要忘记写break,否则会出现穿透现象(但如果上下CASE一样可以省略break简化代码)。

二、循环结构

1.for循环

for循环案例详细流程说明
//输出3次Helloworld
for(int i=0;i<3;i++){
System. out . println( "Hello World"); 
执行的流程:
①循环--开始,执行int i=0一次。
②此时i=0 ,接着计算机执行循环条件语句: 0< 3返回true ,计算机就进到循环体中执行,输出: helloWorld,然后执行迭代语句i++。
③此时 i=1,接着计算机执行循环条件语句: 1 < 3返回true ,计算机就进到循环体中执行,输出: helloWorld ,然后执行迭代语句i++。
④此时 i=2 ,接着计算机执行循环条件语句: 2< 3返回true ,计算机就进到循环体中执行,输出: helloWorld,然后执行迭代语句i++。
⑤此时i=3 ,然后判断循环条件: 3< 3返回false,循环立即结束! ! 

2.while循环

1、while循环的格式,执行流程是怎么样的?
初始化语句;
while (循环条件) {
循环体语句;
迭代语句; 
}
2、while和for有什么区别?什么时候用for,什么时候用while?
●功能上是完全一样的, for能解决的while也能解决,反之亦然。
●使用规范:知道循环几次:使用for;不知道循环几次建议使用: while

3.do-while循环

初始化语句;
do {
循环体语句;
迭代语句;
} while (循环条件); 

do-while循环的特点:
先执行后判断

三种循环的区别小结
●for循环和while循环( 先判断后执行) ; do...while ( 先执行后判断)
●for循 环和while循环的执行流程是一模一样的, 功能上无区别,for能做的while也能做,反之亦然。
●使用规范:如果已知循环次数建议使用for循环,如果不清楚要循环多少次建议使用while循环。
●其他区别: for循环中,控制循环的变量只在循环中使用while循环中,控制循环的变量在循环后还可以继续使用

4.死循环

for(;;){

        System.out.println( "He1lo World1");}

//经典写法

while (true) {

        System.out.println("He11o Wor1d2");}

do {

        System.out.println("He1lo World3"); } while (true);

应用场景:服务器程序

5.循环嵌套

●循环中又包含循环。
for(inti=0;i<3;i++){
        for(intj=0;j<5;j++){
        System. out. println( "我爱你");
        }
}
循环嵌套的特点
●外部循环每循环一次,内部循环会全部执行完一轮。

三、跳转关键字: break、continue

跳转关键字
●break :跳出并结束当前所在循环的执行。
●continue: 用于跳出当前循环的当次执行,直接进入循环的下一次执行。
注意事项
break :只能用于结束所在循环,或者结束所在switch分支的执行。
continue :只能在循环中进行使用。

package com.itheima.loop;

public class BreakContinueDemo1 {
    public static void main(String[] args) {
        for (int i = 1;i<=5; i++){
            System.out.println("I love you" +i);
            if (i >= 3){
                break;
            }
        }
        for (int i = 1;i<=5; i++){

            if (i == 3){
                continue;
            }
            System.out.println("I love you" +i);
        }
    }
}

四、案例技术:生成随机数

Random的使用

1. Random生成随机数需要几步?
●导包: import java.util.Random;
●Random r = new Random();
●int number = r.nextInt(10);
2.如何生成65-91之间的随机数?
●65-91 => -65=> (0-26) + 65
●int number = r.nextlnt(27)+ 65;

package com.itheima.random;

import java.util.Random;

public class RandomDemo1 {
    public static void main(String[] args) {
        Random r = new Random();
        for (int i =1 ;i <=20;i++) {
            int number = r.nextInt(10);
            System.out.println("随机数为:"+ number);
        }
    }
}

猜数字游戏

五、总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值