• Java学习dayo4


    分支结构和循环语句

    1.包的概念

    包就是文件夹

    包的命名规范:全小写,域名倒置,不能以点开头或结尾,可以包含点,每存在一个点表示一个子目录

    举例:com.baidu.demo

    定义包后,包中的java源文件必须生命所在包。使用package关键字,包的声明永远在第一句

    2.Scanner的使用

    java.util.Scanner

    Scanner这个类提供了用于接收用户输入各种类型数据的功能(方法)

    nextInt() 接收用户输入的int类型的数值

    nextShort() 接收用户输入short类型的数值

    nextDouble() 接收用户输入的double类型的数值

    nextFloat()接收用户输入的float类型的数值

    nextBoolean() 接收用户输入的boolean类型的数据

    next() 接收用户输入的字符串

    注意:没有nextChar()

    1.先创建一个Scanner类型的变量 自定义一个Scanner工具(此时需要导包,使用import关键字,导入包的语句永远在包声明之后,类声明之前)

    2.使用上方我们介绍的功能来接收对应的数据

    如果输入了不匹配的数据将会报InputMismathException 输入不匹配异常 将会中断我们的程序

    3.选择结构

    3.1基本if结构

    语法:
    if(布尔表达式){
    ​ //代码块1
    }

    后续代码...
    执行流程:
    对布尔表达式进行判断。
    结果为true,则先执行代码块1,再执行后续代码。
    结果为false,则跳过代码块1,直接执行后续代码。

    3.2 if-else结构

    语法:
    if(布尔表达式){
    ​ //代码块1
    }else{
    ​ //代码块2
    }
    后续代码...
    执行流程:
    对布尔表达式进行判断。
    结果为true,则先执行代码块1,再退出整个结构,执行后续代码。
    结果为false,则先执行代码块2,再退出整个结构,执行后续代码。

    else不能单独出现 必须结合if结构

    3.3 多重if

    if(布尔表达式1){
    ​ //代码块1
    }else if(布尔表达式2){
    ​ //代码块2
    }else if(布尔表达式3){
    ​ //代码块3
    }else{
    ​ //代码块4
    }

    执行流程:
    表达式1为true,则执行代码块1,再退出整个结构。

    表达式2为true,则执行代码块2,再退出整个结构。

    表达式3为true,则执行代码块3,再退出整个结构。

    以上均为false,则执行代码块4,再退出整个结构。

    注意:相互排斥,有一个为true,其他均不再执行,
    适用于区间判断。

    多重if 适用于某个值处于连续区间的情况

    如果处理的情况为连续取件 那么判断条件的顺序 必须为升序 或者 降序 不能是乱序

    多重if中最后的else可以根据情况是否书写

    3.4 嵌套if

    if(外层表达式){
    ​ if(内层表达式){
    ​ //内层代码块1
    ​ }else{
    ​ //内层代码块2
    ​ }
    }else{
    ​ //外层代码块
    }

    ctrl + 回车

    执行流程:
    当外层条件满足时,再判断内层条件。

    注意:
    一个选择结构中,可嵌套另一个选择结构。
    嵌套格式正确的情况下,支持任意组合

    package com.atguigu.test5;
    
    import java.util.Scanner;
    
    /**
     * @author WHD
     * @description TODO
     * @date 2022/7/9 15:14
     *  需求:学校举行百米跑步比赛 跑步时间小于13秒 可以进入决赛 再根据性别进行分组
     *  如果用户跑步时间不能进入决赛 没有必要输入性别  所以我们讲性别输入的操作编写在 外层判断条件内
     */
    public class Test3 {
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
    
            System.out.println("请输入你的跑步时间");
    
            double time = input.nextDouble();
    
    
    
            if(time < 13){
                // 可以进入决赛
                System.out.println("恭喜你进入决赛");
    
                System.out.println("请输入你的性别");
    
                String sex = input.next();
    
    
                // 判断基本数据类型是否等同于某个值  使用==
                // 引用数据类型 String  比较内容是否相同 使用equals
                // 用法:变量名.equals("比较的内容")
                if(sex.equals("男")){
                    System.out.println("进入男子组");
                }else if(sex.equals("女")){
                    System.out.println("进入女子组");
                }else{
                    System.out.println("暂不支持第三性别");
                }
    
            }else{
                System.out.println("下次继续加油~");
            }
    
            System.out.println("程序结束");
    
    
        }
    }
    
    折叠

    4. switch结构

    switch(变量|表达式){
    ​ case 值1:
    ​ 逻辑代码1;
    ​ case 值2:
    ​ 逻辑代码2;
    ​ case 值n:
    ​ 逻辑代码n;
    ​ default:
    ​ 未满足时的逻辑代码;
    }

    可判断的类型:
    byte、short、int、char、String(JDK7+)

    执行流程:
    如果变量中的值等于值1,则执行逻辑代码1。
    如果变量中的值等于值2,则执行逻辑代码2。
    如果变量中的值等于值n,则执行逻辑代码n。
    如果变量中的值没有匹配的case值时,执行default中的逻辑代码。

    注意:所有case的取值不可相同。

    switch 适用于某个值属于固定等值的情况

    package com.atguigu.test6;
    
    import java.util.Scanner;
    
    /**
     * @author WHD
     * @description TODO
     * @date 2022/7/9 15:57
     *  switch 适用于某个值属于固定等值的情况
     *  支持的数据类型:byte short int char String(JDK7+) 枚举
     *
     *  需求:根据名次进行奖励
     *  第一名:奖励夏令营三天
     *  第二名:奖励苹果13袋
     *  第三名:奖励笔记本一本
     *  第四名:口头表扬一次
     *  其他:继续加油
     */
    public class Test4 {
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
    
            System.out.println("请输入你的名次");
    
            int num = input.nextInt();
    
            switch(num){
                case 1:
                case 2:
                    System.out.println("夏令营三天");
                    break;
                case 3:
                    System.out.println("笔记本一本");
                    break;
                case 4:
                    System.out.println("口头表扬一次");
                    break;
                default:
                    System.out.println("继续加油");
                    break;
            }
    
            System.out.println("程序结束");
    
        }
    }
    
    
    折叠

    5.局部变量

    局部变量 描述
    定义 书写在方法中的变量即为局部变量
    定义位置 书写在方法中
    作用范围 离当前变量最近的大括号以内
    重名问题 在重合的作用范围内不能重名
    默认值 无默认值
    存储位置 基本数据类型存储在栈(stack)
    引用数据类型,名字在栈,值在堆(heap)
    生命周期 随方法入栈(压栈)而出生,随方法出栈(弹栈)而死亡

    image

  • 相关阅读:
    【vulhub】MySql身份认证绕过漏洞复现(CVE-2012-2122)
    右击图片出现Microsoft WinRT Storage API,点击提示找不到元素的解决思路
    如何让 ABAP 报表在后台作业的模式下运行
    C++ 基础入门 之 结构体/结构体定义和使用/结构体数组/结构体指针/ 结构体嵌套结构体/结构体做函数参数/结构体中 const 使用场景/结构体案例
    MongoDB副本集调整节点
    【分页】常见两种SpringBoot项目中分页技巧
    深度学习之人脸检测算法
    MYSQL 关键字相似度排序
    极狐GitLab专家团队支招解决 CVE-2023-4998 漏洞问题
    Visual Studio 2022 Community 不完全攻略
  • 原文地址:https://www.cnblogs.com/muamuspace/p/16471314.html