深圳黑马JavaEE学习Day03

1 程序流程控制

目前用的较为广泛的是一下三种流程:

2 分支结构

2.1if分支结构

根据条件(真或假)来决定执行某段代码

有三种表现形式

第一种:首先判断条件表达式的结果,如果为true执行语句体,为 false 就不执行语句体

第二种:首先判断条件表达式的结果,如果为true执行语句体1,为 false 就执行语句体2

第三种:①先判断条件1的值,如果为true则执行语句体1,分支结束;如果为false则判断条件2的值

②如果值为true就执行语句体2,分支结束;如果为false则判断条件3的值

③...

④如果没有任何条件为true,就执行else分支的语句体n+1。

注意:if(条件){},()后不能跟“;”否则{}中的代码将不受if的控制了。

如果if语句的{}中只有一行代码的情况,{}可以省略不写(但是不推荐省略)

案例:if考试奖励案例

package com.itheima.branch;

import java.util.Scanner;

/**
 * 考试奖励案例
 *
 * System.out.println("奖励自行车一辆");
 * System.out.println("奖励游乐场玩一次");
 * System.out.println("奖励变形金刚玩具一个");
 * System.out.println("老王很生气直接揍小王一顿");
 */
public class Case02 {
    public static void main(String[] args) {
        //需求:键盘录入考试成绩,根据成绩所在的区间,程序打印出不同的奖励机制
        Scanner sc=new Scanner(System.in);

        System.out.println("请输入你的分数:");
        int a1=sc.nextInt();

        //if条件语句的使用
        if(a1>=90&&a1<=100){
            System.out.println("考的挺好,给你买一个自行车!");
        } else if (a1>=80&&a1<90) {
            System.out.println("考的不错,给你买一个变形金刚!");

        } else if (a1>=0&&a1<79) {
            System.out.println("你是斯蒂芬吗,考这么点,给你来点七匹狼!");

        }else{
            System.out.println("你敢骗我,家法伺候!");
        }

        //注意事项:正确数据、边界数据、错误数据
    }
}

2.2 Switch分支

是通过比较值来决定执行哪条分支;

①先执行表达式的值,再拿着这个值去与case后的值进行匹配。

②与哪个case后的值匹配为true就执行哪个case块的代码,遇到break就跳出switch分支。

③如果全部case后的值与之匹配都是false,则执行default块的代码。

注意:①表达式类型只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String、不支持double、float、long。

②case给出的值不允许重复,且只能是字面量,不能是变量。

正常使用switch的时候,不要忘记写break,否则会出现穿透现象。

案例:Switch case电子备忘录案例

package com.itheima.branch;

import java.util.Scanner;

/**
 * 电子备忘录案例
 */
public class Case04 {
    public static void main(String[] args) {

        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你的日子");
        int day = sc.nextInt();

        switch (day){

            case 1:
                System.out.println("周一:埋头苦干,解决bug");
                break;
            case 2:
                System.out.println("周二:请求大牛程序员帮忙");
                break;
            case 3:
                System.out.println("周三:今晚啤酒、小龙虾、烧烤");
                break;
            case 4:
                System.out.println("周四:主动帮助新来的女程序解决bug");
                break;
            case 5:
                System.out.println("周五:今晚吃鸡");
                break;
            case 6:
                System.out.println("周六:与王婆介绍的小芳相亲");
                break;
            case 7:
                System.out.println("周日:郁郁寡欢、准备上班。");
                break;

            default:
                System.out.println("输入信息有误!");

        }


    }
}

当存在多个case分支的代码相同时,可以把相同的代码放到一个case块中,其他的case块都通过穿透性穿透到该case块执行代码即可,这样可以简化代码。

3 循环结构

3.1 for循环结构

控制一段代码反复执行很多次,减少代码的重复编写,灵活的控制程序的执行

案例:求1-10之间的奇数和,并把求和结果在控制台输出

package com.itheima.loop;

/**
 * for求奇数和
 *
 * 需求:求1-10之间的奇数和,并把求和结果在控制台输出。
 */
public class Case03 {
    public static void main(String[] args) {
        int i,sum=0;
        for(i=1;i<=10;i++){
            if(i%2==1){
                sum+=i;
            }
        }
        System.out.println("sum = " + sum);

    }
}

3.2while循环结构

两个循环功能上是完全一样的,for能解决的while也能解决,反之亦然,知道循环几次:使用for;不知道循环几次建议使用:while。

案例:纸张折叠成珠穆朗玛峰的高度

package com.itheima.loop;

/**
 * while珠穆朗玛峰
 * 需求:世界最高山峰珠穆朗玛峰高度是:8848.86米=8848860毫米,
 * 假如我有一张足够大的纸,它的厚度是0.1毫米。请问:该纸张折叠多少次,可以折成珠穆朗玛峰的高度?
 * double peakHeight = 8848860;  // 山峰高度
 * double paperThickness = 0.1;  // 纸张厚度
 */
public class Case06  {
    public static void main(String[] args) {

        //定义珠峰和纸张的高度
        double peakHeight = 8848860;
        double paperThickness = 0.1;
        //i为纸张的数量,count为纸张的总数
        int i=1,count=0;
        while (paperThickness<=peakHeight){
            paperThickness=paperThickness*2;
            i++;
            count++;
        }
        System.out.println("paperThickness = " + paperThickness);
        System.out.println("count = " + count);

    }
}

3.3do-while循环结构

先执行后判断

三个循环的区别

for循环和while循环的执行流程是一模一样的,功能上无区别,for能做的while也能做,反之亦然。

使用规范:如果已知循环次数建议使用for循环,如果不清楚要循环多少次建议使用while循环。

其他区别:for循环中,控制循环的变量只在循环中使用。while循环中,控制循环的变量在循环后还可以继续使用

3.4死循环

可以一直执行下去的一种循环,如果没有干预不会停下来

3.5嵌套循环

循环中又包含循环,外部循环每循环一次,内部循环会全部执行完一轮

3.6break,continue

break : 跳出并结束当前所在循环的执行,只能用于结束所在循环, 或者结束所在switch分支的执行。

continue: 用于跳出当前循环的当次执行,直接进入循环的下一次执行,只能在循环中进行使用。

案例:密码验证

package com.itheima.loop;

import java.util.Scanner;

/**
 * 密码校验
 */
public class Case11 {
    public static void main(String[] args) {
        //需求: 系统密码是520,请用户不断的输入密码验证,验证不对输出:密码错误,验证成功输出:欢迎进入系统,并停止程序。
        while (true) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入你的密码:");
            int a1 = sc.nextInt();
            if (a1 == 520) {
                System.out.println("欢迎进入系统!");
                break;
            } else {
                System.out.println("密码错误");
            }
        }


    }
}

4random的作用

生成随机数

案例:猜数字游戏。

package com.itheima.random;

import java.util.Random;
import java.util.Scanner;

/**
 * 猜数字游戏
 */
public class Case02 {
    public static void main(String[] args) {
        //需求: 随机生成一个1-100之间的数据,提示用户猜测,猜大提示过大,猜小提示过小,直到猜中结束游戏。
        Random ra=new Random();
        int a=ra.nextInt(100)+1;
        while(true){
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入你猜的数:");
            int b=sc.nextInt();
            if(b>a){
                System.out.println("猜大了");
            } else if (b<a) {

                System.out.println("猜小了");

            }
            else {
                System.out.println("恭喜你,猜对了!");
                break;
            }
        }


    }
}

大家加油!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

bug陈

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

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

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

打赏作者

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

抵扣说明:

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

余额充值