【分支控制(if-else判断)】单分支-双分支-多分支-嵌套分支

程序流程控制

在程序中, 程序运行的流程控制决定程序是如何执行的, 是我们必须掌握的, 主要有三大流程控制语句.

  1. 顺序控制 (简单)
  2. 分支控制 (判断)
  3. 循环控制 (循环)

请添加图片描述

一. 顺序控制

  • 顺序控制介绍

    程序从上到下逐行地执行, 中间没有任何判断和跳转.

  • 顺序控制举例和注意事项

    Java中定义变量时采用合法的 向前引用 如:

public class Test {
    int num1 = 12;
    int num2 = num1 + 2;
}

错误形式:

public class Test {
    int num2 = num1 + 2;  //错误
    int num1 = 12;
}

请添加图片描述

二. 分支控制 if-else

  • 分支控制 if-else 介绍

让程序有选择的执行, 分支控制有三种

二.1. 单分支
 基本语法:
 
 if(条件表达式){
      执行代码块; (可以有多条语句.)
 }

说明:
当条件表达式为true时, 就会执行 { } 的代码. 如果为false, 就不执行. 特别说明, 如果 { } 中只有一条语句, 则可以不用 { }, 小编建议写上 { }, 这样看起来会更清晰.

  • 案例说明
    编写一个程序, 可以输入人的年龄, 如果该同志的年龄大于18岁, 则输出 “您年龄大于18, 要对自己的行为负责, 送入监狱”
    Scanner input = new Scanner(System.in);
        System.out.println("请输入年龄:");
        int age = input.nextInt();
        if (age > 18) {
            System.out.println("您年龄大于18, 要对自己的行为负责, 送入监狱");
        }

        System.out.println("程序继续...");
    }

同样也可以这么写:

    Scanner input = new Scanner(System.in);
        System.out.println("请输入年龄:");
        int age = input.nextInt();
        if (age > 18)System.out.println("您年龄大于18, 要对自己的行为负责, 送入监狱");
        System.out.println("程序继续...");
    }

请添加图片描述

二.2. 双分支

基本语法:

 if(条件表达式){
        	执行代码块1;
 }
 else {
       	  执行代码块2;
 }

说明:
当条件表达式成立, 即执行代码块1. 否则执行代码块2, 如果 { } 中只有一条语句, 则可以不用 { }, 否则, 不能省略

  • 案例说明
    编写一个程序, 可以输入人的年龄, 如果该同志的年龄大于18岁, 则输出 “您年龄大于18, 要对自己的行为负责, 送入监狱”, 否则 , 输出 “你的年龄不大, 这次放过你了”
//        思路分析
//        1. 接收输入的年龄, 定义Scanner对象
//        2. 把年龄保存到一个变量, int age
//        3. 使用 if-else 判断, 输出对应信息
    Scanner input = new Scanner(System.in);
        System.out.println("请输入年龄:");
        int age = input.nextInt();
        if (age > 18) {
            System.out.println("您年龄大于18, 要对自己的行为负责, 送入监狱");
        }
        else {
            System.out.println("你的年龄不大这次放过你");
        }
        System.out.println("程序继续...");
    }

在这里插入图片描述

分支可以嵌套使用

      Scanner input = new Scanner(System.in);
        int x = 7;
        int y = 4;
        if (x > 5) {
            System.out.println("请输入年龄:");
            int age = input.nextInt();
            if (age > 18) {
                if (y > 5) {
                    System.out.println(x + y);
                    System.out.println("Jean_z");
                } else System.out.println("x is" + x);
            } else {
                System.out.println("你的年龄不大这次放过你");
            }
            System.out.println("程序继续...");
        }

请添加图片描述

单分支和双分支练习题

  • 定义两个变量int, 判断二者的和,是否能被3又能被5整除, 打印提示信息
//        思路分析
//        1. 定义两个变量 int num1, num2
//        2. 定义一个变量 int sum = num1 + num2;
//        3. sum % 3, 5 后 等于0 说明可以被整除
//        4. 使用 if - else 来提示对应信息
        int num1 = 10;
        int num2 = 20;
        int sum = num1 + num2;
        if (sum % 3 == 0 && sum % 5 ==0) {
            System.out.println("可以被整除");
        } else {
            System.out.println("和不能被3或5整除");
        }

  • 判断一个年份是否是闰年, 闰年的条件是符合下面二者之一: (1)年份能被4整除, 但不能被100整除; (2)能被400整除
//        思路分析
//        1. 定义 int year 保存年
//        2. 年份能被4整除, 但不能被100整除,
//        => year % 4 == 0 && year % 100 != 0
//        3. 能被400整除 => year % 400 == 0
//        4. 上面的 2 和 3 是或的关系
        int year = 2024;
        if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
            System.out.println(year + "是 闰年");
        }else {
            System.out.println(year + "不是闰年");
        }

请添加图片描述

三.3. 多分支

基本语法:

if (条件表达式1) {
执行代码块1;
}
else if (条件表达式2) {
执行代码块2;
}

else {
执行代码块n;
}

  • 多分支流程图(重要!)

说明:

  1. 当条件表达式1成立时, 及执行代码块1,
  2. 如果条件表达式1不成立时, 才去判断表达式2是否成立
  3. 如果表达式2成立, 就去执行代码块2
  4. 以此类推, 如果所有表达式都不成立
  5. 则执行 else 的代码块, 注意, 只能有一个执行入口

特别说明:
(1) 多分支可以没有else, 如果所有表达式都不成立, 则一个执行入口也没有
(2) 如果有else, 如果所有条件表达式都不成立, 则默认执行else

请添加图片描述

  • 案例演示
    输入保国同志的芝麻信用分:
    如果:
  1. 信用分为100分时, 输出 信用极好
  2. 信用分为(80, 99)时, 输出 信用优秀
  3. 信用分为(60, 80)时, 输出 信用一般
  4. 其他情况, 输出 信用 不及格
  5. 请从键盘输入保国的芝麻信用分, 并加以判断
        Scanner input = new Scanner(System.in);
        System.out.println("输入保国同志的芝麻信用分:");
        int bg = input.nextInt();
        if (bg == 100) {
            System.out.println("信用分极好");
        }else if (bg >= 80 && bg <=99) {
            System.out.println("信用优秀");
        }else if (bg >=60 && bg < 80) {
            System.out.println("信用不及格");
        }else {
            System.out.println("输入不正确");
        }

请添加图片描述

三.4. 嵌套分支

  • 基本介绍
    在一个分支结构中又完整的嵌套了另一个完整的分支结构, 里面的分支的结构称为内层分支外面的分支结构称为外层分支, 尽量不超过三层 (可读性不好)

  • 基本语法

if(){
if(){
//if-else…
}else{
//if-else
}
}

  • 应用案例
    参加歌手比赛,如果初赛成绩大于8.0进入决赛,否则提示淘汰。并且根据性别提示进入男子组或女子组。【可以让学员先练习下】,输入成绩和性别,进行判断和输出信息。

    提示: double score; char gender;
    接收字符: char gender = scanner.next().charAt(0) //先接收到一个字符串,再接收字符串里的第一个字符

//        思路分析
//        1. 创建Scanner对象, 接收用户输入
//        2. 接收成绩保存到 double score
//        3. 使用 if-else
//        4. 如果进入到决赛, 再接收char gender, 使用if-else输出信息
        Scanner input = new Scanner(System.in);
        System.out.println("请输入该歌手成绩:");
        double score = input.nextDouble();
        if (score > 8.0){
            System.out.println("请输入性别:");
            char gender = input.next().charAt(0);
            if (gender == '男' ){
                System.out.println("进入男子组决赛");
            }else if (gender == '女'){
                System.out.println("女子组");
            } else {
                System.out.println("输入不正确, 重新输入");
            }
        } else {
            System.out.println("sorry, 你被淘汰了");
        }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/653780.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【JavaEE初阶】HTTP协议|HTTP请求方法|GET|POST|GET和POST的区别|问题辨析

目录 认识"⽅法"(method) 1.GET⽅法 GET请求的特点 2.POST⽅法 POST请求的特点 &#x1f4a1;经典⾯试题:谈谈GET和POST的区别 &#x1f4a1;问题辨析&#xff1a; 3.其他⽅法 &#x1f4a1;推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂…

钉钉企业内部H5微应用或小程序之钉消息推送

钉钉简单的推送钉消息 一、钉钉准备工作 首先进入钉钉开放平台 你得有企业内部微应用或者小程序 没有创建的话去看我另一篇文章有说明 钉钉开放平台创建企业内部H5微应用或者小程序-CSDN博客 看不懂话也可以参考官方文档&#xff1a;创建应用 - 钉钉开放平台 二、开发的准备…

他用AI,抄袭了我的AI作品

《大话西游》里面有一句经典台词&#xff1a;每个人都有一个妈&#xff0c;但是“你妈就一定是你妈吗&#xff1f;” 用AI创作的艺术作品&#xff0c;也走进类似的困境&#xff1a;如何证明你用AI生成的作品&#xff0c;就是你的作品&#xff1f; 近日&#xff0c;腾讯科技独…

【亲测,安卓版】快速将网页网址打包成安卓app,一键将网页打包成app,免安装纯绿色版本,快速将网页网址打包成安卓apk

背景&#xff1a;部分客户需求将自己网站打包成app&#xff0c;供用户在浏览器安装使用、 网页网址快速生成app 准备材料操作流程第一步&#xff1a;打开HBuilder X新建项目第二步创建Wap2App项目第三步修改App图标第四步发布app第五步查看apk 准备材料 1.需要打包的网页 2.ap…

快速复制成功模式:解读SaaS裂变工具的核心价值

在数字化快速发展的今天&#xff0c;企业如何在竞争激烈的市场中迅速站稳脚跟&#xff0c;成为许多企业家和管理者关注的焦点。SaaS裂变工具作为一种创新的解决方案&#xff0c;以其独特的优势&#xff0c;帮助企业快速复制成功模式&#xff0c;实现业务的快速增长。 SaaS裂变工…

LED便携小型充气泵方案设计

当前推出的车载充气泵设计方案&#xff0c;是针对汽车轮胎充气及胎压监测等多功能于一体的PCBA方案。此方案不仅具备高精度的控制和测量能力&#xff0c;还采用了高集成度的芯片设计&#xff0c;支持三种压力单位的转换&#xff0c;并能适应多种类型产品的充气需求。以下是关于…

斯坦福报告解读3:图解有趣的评估基准(上)

《人工智能指数报告》由斯坦福大学、AI指数指导委员会及业内众多大佬Raymond Perrault、Erik Brynjolfsson 、James Manyika等人员和组织合著&#xff0c;旨在追踪、整理、提炼并可视化与人工智能&#xff08;AI&#xff09;相关各类数据&#xff0c;该报告已被大多数媒体及机构…

知识点总结

1、Uboot的流程调用&#xff1a; 1.1、cmd_process函数是怎么被调用到的&#xff1a; cmd_process在common/command.c 1.2、uboot阶段断电&#xff0c;后续起不来&#xff0c;可能要换线去使用&#xff0c;也许和电源线有关 2、git 相关使用 2.1 .gitignore相关的使用 1、…

搭建电商电子商务平台有哪些好用的电商API数据采集接口?

电商API接口主要用于帮助开发者将电商功能集成到自己的应用程序中&#xff0c;实现诸如商品检索、商品价格数据获取、订单处理、支付、物流跟踪等功能。以下是一些常用的电商API接口提供商&#xff1a; 主流电商平台API&#xff1a; 淘宝开放平台&#xff1a;提供淘宝、天猫、…

卤菜销售|基于SSM+vue的智能卤菜销售平台的设计与实现(源码+数据库+文档)

智能卤菜销售平台 目录 基于SSM&#xff0b;vue的智能卤菜销售平台的设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 3用户功能模块 4商家功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八…

URL跳转

1.URL介绍 开放重定向&#xff08;Open Redirect&#xff09;&#xff0c;也叫URL跳转漏洞&#xff0c;是指服务端未对传入的跳转url变量进行检查和控制&#xff0c;导致诱导用户跳转到恶意网站&#xff0c;由于是从可信的站点跳转出去的&#xff0c;用户会比较信任。 2.URL跳…

有一个3x4的矩阵,求矩阵中所有元素中的最大值。要求用函数处理

解此题的算法已在之前的文章中介绍&#xff0c;详见&#xff1a;https://mp.csdn.net/mp_blog/creation/editor/139181787 编写程序&#xff1a; 运行结果&#xff1a;

香橙派 AIPro开发板上手测评

前言 最近拿到了一个新玩具&#xff1a;香橙派 AIPro。一个只比银行卡大一点点的开发板能带给我们多少惊喜呢&#xff1f;接下来就跟我一起来体验下这块开发板的魅力。 一、硬件配置 CPU&#xff1a;配备了4核64位ARM处理器&#xff0c;其中默认预留1个给AI处理器使用 NPU&am…

【Qt常用控件】—— 布局管理器

目录 前言 &#xff08;一&#xff09;垂直布局 &#xff08;二&#xff09;水平布局 &#xff08;三&#xff09;网格布局 &#xff08;四&#xff09;表单布局 &#xff08;五&#xff09;分组布局 &#xff08;六&#xff09;Spacer 总结 前言 之前使⽤Qt在界⾯上…

听说部门来了个00后测试开发,一顿操作给我整麻了

公司新来了个同事&#xff0c;听说大学是学的广告专业&#xff0c;因为喜欢IT行业就找了个培训班&#xff0c;后来在一家小公司实习半年&#xff0c;现在跳槽来我们公司。来了之后把现有项目的性能优化了一遍&#xff0c;服务器缩减一半&#xff0c;性能反而提升4倍&#xff01…

HTML静态网页成品作业(HTML+CSS)——动漫熊出没介绍网页(3个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有3个页面。 二、作品演示 三、代…

使用`War`包部署`Jenkins`(超级详细)

使用War包部署Jenkins(超级详细) 别着急&#xff0c;你看这年复一年&#xff0c;春光不必趁早&#xff0c;冬霜不会迟到。过去的都会过去&#xff0c;该来的都在路上&#xff0c;一切都是刚刚好。 网站说明 https://get.jenkins.io/war-stable/ war包下载地址 https://www.jenk…

AIGC笔记--基于PEFT库使用LoRA

1--相关讲解 LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS LoRA 在 Stable Diffusion 中的三种应用&#xff1a;原理讲解与代码示例 PEFT-LoRA 2--基本原理 固定原始层&#xff0c;通过添加和训练两个低秩矩阵&#xff0c;达到微调模型的效果&#xff1b; 3--简单代…

boost asio异步服务器(2)实现伪闭包延长连接生命周期

闭包 在函数内部实现一个子函数&#xff0c;子函数的作用域内能访问外部函数的局部变量。闭包就是能够读取其他函数内部变量。但是由于闭包会使得函数中的变量都被保存在内存中&#xff0c;内存消耗很大&#xff0c;所以不能滥用闭包&#xff0c;否则会造成程的性能问题&#x…

没开玩笑!高速信号不能参考电源网络这条规则,其实很难做到

高速先生成员--黄刚 看到这篇文章的题目&#xff0c;我相信大家心里都呈现出了这么一个场景&#xff1a;高速信号线在L20层&#xff0c;我只要把L19和L21层都铺上完整的地平面&#xff0c;这不就满足了高速信号线不能参考电源平面这条规则了吗&#xff1f;这难道很难做到吗&…