java程序的执行结构(顺序、分支、循环)

2023-11-13

目录

一、顺序流程

二、分支流程控制

          1、分支结构的概念                  

          2、流程控制

            分支 if-else 的使用

             分支 switch-case 的使用

三、循环流程结构

         1、循环结构的概念                         

         2、循环结构的三要素

         3、循环控制

                    for循环

                     while循环       

                     do-whil循环

                     while 和 do-while的区别

                     多重循环

                    break和continue的使用


                  首先要知道在Java中,程序的执行结构分为三种 流程控制,就是通过指定的语句,修改程序的执行结构。

        按照修改的不同的执行结构,流程控制语句可以分为:顺序结构、分支结构、循环结构。

                               顺序结构: 代码从上往下,逐行依次执行。是程序执行的默认结构
                              分支结构: 程序在某一个节点遇到了多种向下执行的可能性,根据条件,选择一个分支继续 执行。                                     
                              循环结构: 某一段代码需要被重复执行多次。        

一、顺序流程

                     顺序结构的程序设计是最简单的,只要按照问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。

二、分支流程控制

          1、分支结构的概念                  

                          对于要先做判断再选择的问题我们要使用分支结构。分支结构的执行是依据一定的条件选择执
                   行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适 的分
                   支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。分支结构适合于带有 逻辑或关
                   系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据 程序流程写出
                   源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。

         

             2、流程控制

                            分支 if-else 的使用

                                                  分支 -  if : 

                                                                          

 if语句有四中种使用形式:

             if(条件){…} 

if (/* 条件判断 true or false */) {
       // 条件结果为true执行大括号以内的语句 
}
/*执行流程: 代码运行到if分支结构,
首先判断if之后的条件是否为true,如果为true,
执行大括号 里面的语句,如果为false直接执行大
括号之外的语句, */

           示例1java成绩如果大于60,奖励一颗糖      

//成绩如果大于60 给奖励 
int score = 10; 
if(score>60){ 
    System.out.println("给颗糖"); 
}

           if(条件){…}else{…}

if (condition) { 
    // 代码段1 
}else {
    // 代码段2
}

/*
逻辑: condition是一个boolean类型的变量, 或者一个boolean结果的表达式. 如果condition
的值为true, 则代码段1执行, 否则, 代码段2执行
*/

             举例:成绩大于60分合格,否则不合格

if (score >= 60) {
    System.out.println("成绩及格了!"); 
}else {
    System.out.println("成绩不及格!"); 
}

            if(条件){…}else if(条件){…}else{…}

if (condition1) {
     // 代码段1 
}else if (condition2) {
     // 代码段2 
}else {
    // 代码段3 
}
/*
逻辑: 先判断condition1, 如果condition1成立, 执行代码段1; 如果condition1不成立, 再判断
condition2, 如果condition2成立, 执行代码段2, 否则执行代码段3
*/

    举例 : 成绩小于60的合格,合格中的小于80分为良,否则为优

if (score < 60) {
     System.out.println("成绩不及格!"); 
}else if (score < 80) {
     System.out.println("良!"); 
}else {
    System.out.println("优!"); 
}

       if(条件){ if(条件){...} } else {...}

if(条件1) { 
    if(条件2) { 
        // 代码块1 
    } else {
        //代码块2 
    } 
} else {
        //代码块3 
}
      举例: 如果成绩大于 90 如果是男生 送个女朋友, 如果是女生送个男朋友,小于90的什么都不送。
if(score>90){ 
    if(c=='男'){ 
        System.out.println("给送个女朋友"); 
    }else{
        System.out.println("给送个男朋友"); 
    } 
}else{
    System.out.println("什么都没有送哦");
}

           分支 switch-case 的使用

                        

                   switch的基础语法

switch(表达式expr){//int,byte,short,char,enum,String 
    case const1: 
        statement1; 
        break; 
    case const2: 
        statement2; 
        break; 
        … … 
    case constN: 
        statementN; 
        break; 
    default: 
        statement_dafault; 
        break;
}
             程序逻辑:
                   检测某一个变量的值, 从上往下依次与每一个case进行校验、匹配 如果变量的值和某一个case 后面的值相同,
             则执行这个 case 后的语句 如果变量的值和每一个case 都不相同,则执行 default 后的语句
           switch 的语法规则
                    
              1. 表达式 expr 的值必须是下述几种类型之一:
                     byte short int char enum( 枚举 ) java7 之后可以是 String
             1. case 子句中的值 const 必须是常量值 ( final 的变量 ) case 中的值不能是一个范围
             2. 所有 case 子句中的值应是不同的 , 否则会编译出错;
             3. default 子句是可选的(不是必须的)
             4. break 语句用来在执行完一个 case 分支后使程序跳出 switch 语句块;否则会继续执行下去

        举例:

int i=1;
switch(i){ 
    case 1: 
        System.out.println("Hello World!"); 
        break; 
    case 2: 
        System.out.println("Hello World!2"); 
        break;
    case 3: 
        System.out.println("Hello World3"); 
        break; 
    default: 
        System.out.println("Haaaa"); 
        break; 
}

             switch的穿透性:

                      指的是, 当switch的变量和某一个case值匹配上之后, 将会跳过后续的case或者default

             匹配,直接向后穿透

                  

          为了杜绝穿透, 可以使用关键字 break:

                  

三、循环流程结构

         1、循环结构的概念                         

                       循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中
           的条件,判断继续执行某个功能还是退出循环。根据判断条件 , 循环结构又可细分为以下两种形
           式 : 先判断后执行的循环结构和先执行后判断的循环结构 . 循环结构可以看成是一个条件判断语
          句和一个向回转向语句的组合。

        2、循环结构的三要素

                  循环结构的三个要素:循环变量、循环体和循环终止条件

          3、循环控制

                        for循环

                                                

                                       
//实操代码
 for(int i=0; i< 10; i++){ 
    System.out.println("当前循环变量的值是" + i);
 }

/*
第一步:执行 int i=0; 
第二步:执行 i<10;(此时 i值为0) 结果为true,所以程序继续执行第三步 
第三步:执行 System.out.println("当前循环变量的值是" + i); 打印输出 
第四步:执行 i++ (执行后 i值为 1) 
第五步:执行(回到第二步执行)i<10;
(此时 i值为1) 表达式结果依然为 true,所以程序 
继续(执行三到五步,直到某次第二步的语句结果为false ,程序结束) */

                        while循环       

                                         

while语句由关键字 while 小括号 大括号 以及相关语句组成 基本格式如下:
while(条件表达式){ 
    循环体 
}
条件表达式:循环终止的判断条件语句(相当于for循环的 表达式2),
要求为布尔表达式, 也就是结果为真或假值 比如 i < 10; 循环体:n行循环要执行的语句
// 初始化部分 
int count = 0; 
// 2循环条件 
while(count<5){ 
    //3循环体 
    System.out.println("我爱编程"); 
    //4更新循环变量 
    count++; 
}

                     do-whil循环

                                       

                                   do-whilh的基本语法

//do-while语句由 do关键字 大括号 while关键字 小括号号和相关语句组成 
//基本格式如下: 
do{ 
    //循环体 
}while(条件表达式);

                                do-while循环的特点和注意事项

                                         1.do-while循环为先执行后判断,也就是先执行一次循环体中的代码,

                                         然后再检查条件表达 式,所以do-while循环至少会执行一次

                                         2.其它特点和while循环一样

                 while do-while的区别

                                           1.while 先执行循环条件,然后在执行循环体,一句话:先判断,再执行

                                           2.do/while 先执行循环体 然后在执行循环条件,一句话:先执行,再判断

                                           当第一次 就不满足循环条件的情况下 while 循环不能执行循环体 , do while 可以执行

                  多重循环

                                          多重循环的基本概念:

                                                     1.概念:多重循环就是指 在循环内嵌套其它循环,和选择语句嵌套类似,嵌套几层就是几重循

                                                      环,最常见的为双重和三重
                                                      2. 说明:外层循环执行一次,它的内层循环执行一轮(也就是内循环正常循环一遍结束)
                                            多重循环的执行流程:
                                                       
                                                      第一步 : 从外层循环开始执行 先执行一次进入循环体(里面包括内层循环)
                                                      第二步 : 遇到内层循环,开始正常执行,直到内循环循环结束
                                                      第三步 : 继续外循环的下一次循环(回到第一步)

                   breakcontinue的使用

                                        break:

                                                1.作用:break语句用于终止某个语句块的执行

                                               2.用法:如果是循环中,作用为跳出所在的循环,如果是在switch语句中,则为跳出所在的 switch语句

                                               3.其它说明:使用Lable标签实现跳出指定的循环

                                       continue:      

                                             1. 作用:跳过本次循环,执行下一次循环(如果有多重循环,默认继续执行离自己最近的循
                                              环)提前终止本次循环
                                            2. 使用:只能在循环结构中使用
                                            3. 其它说明:使用 Label 标签改变继续执行的循环

  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java程序的执行结构(顺序、分支、循环) 的相关文章

  • 不同帐户上的 Spring Boot、JmsListener 和 SQS 队列

    我正在尝试开发一个 Spring Boot 1 5 应用程序 该应用程序需要侦听来自两个不同 AWS 帐户的 SQS 队列 是否可以使用 JmsListener 注解创建监听器 我已检查权限是否正确 我可以使用 getQueueUrl 获取
  • HSQL - 识别打开连接的数量

    我正在使用嵌入式 HSQL 数据库服务器 有什么方法可以识别活动打开连接的数量吗 Yes SELECT COUNT FROM INFORMATION SCHEMA SYSTEM SESSIONS
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • 如何在 Spring 中禁用使用 @Component 注释创建 bean?

    我的项目中有一些用于重构逻辑的通用接口 它看起来大约是这样的 public interface RefactorAwareEntryPoint default boolean doRefactor if EventLogService wa
  • 如何更改javaFX中按钮的图像?

    我正在使用javaFX 我制作了一个按钮并为此设置了图像 代码是 Image playI new Image file c Users Farhad Desktop icons play2 jpg ImageView iv1 new Ima
  • 来自 dll 的 Java 调用函数

    我有这个 python 脚本导入zkemkeeperdll 并连接到考勤设备 ZKTeco 这是我正在使用的脚本 from win32com client import Dispatch zk Dispatch zkemkeeper ZKE
  • 从最终实体获取根证书和中间证书

    作为密码学的菜鸟 我每天都会偶然发现一些简单的事情 今天只是那些日子之一 我想用 bouncy castle 库验证 java 中的 smime 消息 我想我几乎已经弄清楚了 但此时的问题是 PKIXparameters 对象的构建 假设我
  • 在 junit 测试中获取 javax.lang.model.element.Element 类

    我想测试我的实用程序类 ElementUtils 但我不知道如何将类作为元素获取 在 AnnotationProcessors 中 我使用以下代码获取元素 Set
  • Hibernate 的 PersistentSet 不使用 hashCode/equals 的自定义实现

    所以我有一本实体书 public class Book private String id private String name private String description private Image coverImage pr
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • tomcat 中受密码保护的应用程序

    我正在使用 JSP Servlet 开发一个Web应用程序 并且我使用了Tomcat 7 0 33 as a web container 所以我的要求是tomcat中的每个应用程序都会password像受保护的manager applica
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • 如何使用mockito模拟构建器

    我有一个建造者 class Builder private String name private String address public Builder setName String name this name name retur
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem
  • 使用 CXF-RS 组件时,为什么我们使用 而不是普通的

    作为后续这个问题 https stackoverflow com questions 20598199 对于如何正确使用CXF RS组件我还是有点困惑 我很困惑为什么我们需要
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp
  • Java中super关键字的范围和使用

    为什么无法使用 super 关键字访问父类变量 使用以下代码 输出为 feline cougar c c class Feline public String type f public Feline System out print fe

随机推荐

  • xp系统sql服务器怎么找,SQL文件在winxp系统下怎么打开

    很多用户不知道SQL文件是什么 SQL文件怎么打开 我们存储数据时候经常会遇到SQL文件 如果你不知道WinXP系统SQL文件是什么以及怎么打开的话 那就赶紧看看小编整理的以下文章内容吧 SQL文件是什么 学习编程的同学可能都知道SQL是一
  • CTF_WEB(习题)

    一 bugku web cookie欺骗 https ctf bugku com challenges detail id 87 html 地址栏filename一看为base64 解密为keys php 尝试index php加密为bas
  • vue的请求封装和api接口的封装

    1 请求封装 1 创建utils文件夹 2 在此文件夹创建http js文件 3 在此文件夹引入axios import axios from axios 4 创建一个新的请求实例 const instance axios create b
  • web面试必问的题

    1 Vue双向数据绑定 2 虚拟dom和diff算法 3 组件通信 4 Vuex 5 Vue router 路由原理 路由守卫 路由传参 6 Vue声明周期 7 自定义指令 自定义过滤器 8 自定义组件 9 常用的指令 修饰符 10 vue
  • 动态规划题目总结

    基础题目 剑指 Offer 10 I 斐波那契数列 70 爬楼梯 剑指 Offer II 088 爬楼梯的最少成本 不同路径 II 带障碍 我一定会 卡特兰数 n个节点可以构成多少种搜索二叉树 分割三角形 排队买票 n对括号有多少种合理的表
  • C语言---函数指针

    前言 1 函数指针 顾名思义 就说函数的指针 2 我们学习Linux的时候 经常能够看到使用一个结构体 结构体中很多个成员 我们给这些成员赋于函数名 这样非常方便我们管理一个设备文件 3 本文将会详细介绍函数指针 函数指针介绍 函数指针原型
  • ue4项目运行还可以鼠标点击

    ue4项目运行还可以鼠标点击
  • 【第1篇】AlexNet:CNN开山之作

    文章目录 摘要 1 简介 2 数据集 3 架构 3 1 ReLU非线性 3 2 多GPU训练 3 3 局部响应归一化 3 4 重叠池化 3 5 整体架构 4 减少过拟合
  • http post 请求示例

    public static String post6 String URL String json String obj null 创建默认的httpClient实例 CloseableHttpClient httpclient HttpC
  • session 存储失败

    session 在服务器上储存失败 我的原因是 因为服务器环境是 centos 加 nginx 的所以 php fpm 文件的所属要改为nginx 要不然没办法写入
  • jsp使用cookie实现记住用户名和密码

    首先说一下实现的功能 用户打开注册页面 最下面有个记住用户名和密码的复选框 如果勾选上 则在登录页面会自动将用户名和密码赋值到文本框中 使用java中的cookie实现 下面就是代码 注册页面代码 reg jsp
  • 使用FL Studio四年后深度测评,我为什么选择FL Studio?

    相信大家或多或少的都有关注最近火出圈的电音综艺 超感星电音 各路制作人群雄齐聚 各放光彩 其中当之无愧被称为中国电子音乐第一人的Carta 其使用的编曲软件就是FL Studio 哪怕放眼全球 诸如Martin Garrix 小马丁 Bro
  • ROS multi-master——multimaster_fkie配置

    多主站ROS配置和mutimaster fkie ROS版本 kinetic 操作系统 Ubuntu 16 04 multimaster fkie github 1网络配置 1 1路由器 设置无线路由器并连接两台计算机 机器人 为这两台计算
  • iOS AFN-将token添加到请求头header中请求

    AFHTTPSessionManager manager AFHTTPSessionManager manager 调出请求头 manager requestSerializer AFJSONRequestSerializer serial
  • v-for中:key的必要性

    v for中要用key的原因是 key只能是字符串或者数字 key必须是唯一 key 作用 提高重排效率 就地复用 key可以标识列表中每个元素的唯一性 方便Vue高效地更新虚拟DOM key主要用于dom diff算法 diff算法是同级
  • Modbus Poll与Modbus Slave协议的两种连接方式说明:serial连接(串口连接)或者TCP连接

    Modbus的serial 串口 连接 1 安装虚拟串口VSPD 就能在一台电脑上模拟用串口连接的情况 虚拟串口安装软件 安装完成后 打开vspd虚拟串口软件 在Manage ports gt gt 选择添加First port 和 Sec
  • CORDIC算法FPGA的实现

    基于CORDIC算法FPGA的实现 CORDIC算法原理利用简单的移位就实现 主要用于三角函数 双曲线 指数 对数的计算 在以二进制操作为基础的FPGA硬件中就显得尤为重要 虽然现在的fpga有了集成IP核 但是对于其基本原理还是需要关注的
  • 基于VUE的电商系统的设计与实现

    随着移动互联网技术和计算机技术的不断发展 电子商务已经成为社会发展的潮流 通过电子商务系统商品信息交流变的更加方便 面对高速发展的电子商务 电商系统如雨后春笋不断的涌现 利用电商系统 企业销售可以足不出户实现销售信息的全面管理 从而指引企业
  • redhat常用基础命令代码

    redhat常用基础命令 1 登陆和关机 重启和切换用户 创建删除用户 远程登陆redhat ssh root 192 168 xx xx ssh为远程登陆选择的通道 root为用户名 192 168 xx xx为ip地址 关机 shutd
  • java程序的执行结构(顺序、分支、循环)

    目录 一 顺序流程 二 分支流程控制 1 分支结构的概念 2 流程控制 分支 if else 的使用 分支 switch case 的使用 三 循环流程结构 1 循环结构的概念 2 循环结构的三要素 3 循环控制 for循环 while循环