JAVA ---程序流程

(一)引言

在生活中,我们经常会发现在医院或者官方机构办事是要走流程的,同样的程序必须能操控自己的世界,在执行过程中作出判断与选择。在Java中,通过流程控制语句可实现程序执行流程的随意控制,既可以顺序执行,也可以随意跳转,还可以重复执行某一段代码。
   Java 的程序流程控制分为顺序结构、选择结构、循环结构和跳转语句。
 
(二)顺序结构


      顺序结构就是按照程序代码先后顺序自上而下地执行,直到程序结束,中间没有任何
判断和跳转。大致分为两个方向:按照程序代码先后顺序自上而下地执行从左往右的代码。

 

(三)选择结构


         选择结构(又称分支结构)用于判断给定的条件,根据判断的结果来控制程序的流程。
选择语句包括语句和switch语句,它们用来解决实际应用中按不同情况进行不同处理的问题。

① if语句

    

      if语句是通过判断给定表达式的值来决定程序流程的,常见形式:

1.if(表达式){

//在流程控制语句中用每对大括号括起来的代码称为代码块,也叫条件执行体。

      代码块 ;//如果表达式为真,就执行 代码块,否则跳过

}

2.if

(表达式){

      语句块1 ;//如果表达式为真,就执行语句块1,否则执行else中的语句块2

}else{
  语句块2 ;

}

3.

//实质是条件细化
//条件的逐步筛选
if(表达式1)
{

    代码块1;//如果表达式为真,就执行 代码块1,否则跳过

}

else if(表达式2)
{

    代码块2;//如果表达式为真,就执行 代码块2,否则跳过

}

else if(表达式3)
{

      代码块3;//如果表达式为真,就执行 代码块3,否则跳过

}

.....该语句的else if 可无限嵌套。
else
{

       printf(“上述表达式均不成立\n”);//上述表达式均不成立才执行

}

//整个语句一条复合语句,只会做一次成功的比较,执行一个地方               

②switch语句


switch语句(多分支语句)是通过数据匹配的方式实现程序的多分支控制。其语法形式如下:


switch(表达式)
{
    case 常量1:  //表达式和常量1比较
        语句1;
    case 常量2:
         语句2;
    case 常量3:
         语句3;
    default:
         其他情况执行的地方;    
}
//1.switch执行过程:从上至下执行;switch语句只做一次成功的比较,后面的语句不需要比较,都会一次执行
//2.case后面必须是常量,一般写的数字,或者字符,不能写字符串
//3.default是可选的,当表达式的值与任何的value的值都不匹配时,执行default代码块;如果没有default语句,就直接跳出循环;default的位置是随便放的,一般是放在最下面的
//4.switch语句不执行case和default以外的其他语句
//5.一般switch都是结合break语句(用来跳出switch语句)来使用的

//6.如果多个case  不同的值是相同的处理方案,则可以合并,就是省略相应代码块的break.

break语句:是用来中断当前循环,通常在 switch 语句和 while、for、for...in、或 do...while 循环中使用 break 语句。 最一般的是在 switch 语句中使用 label 参数,但它可在任何语句中使用,无论是简单语句还是复合语句。
//7.表达式的返回值类型只能是char、byte、short或int型。 

 

 (四)循环结构

循环结构可以重复执行某一段代码,直到不满足循环条件为止。循环结构主要有for、while、do-while三种循环语句。

 ①for语句:

语法形式:

for(表达式1;表达式2;表达式3)
{
    循环体4;    
}
//执行循序:1  2 4 3 ; 2 4 3 ; 2 4 3--》真正循环:432

//表达式1(初始化语句):循环变量初始化且表达式1定义的变量只能在循环中使用
//表达式2(条件判断语句):循环条件:该表达式是一个布尔型表达式。其值为true,执行循环体4;否则结束循环。
//表达式3(条件控制语句):循环变量的改变

特例:①缺省形态:for(;;)  语句;死循环  ;

②逗号表达式的写法:

for(int i=0,j=3;i<j;i++)  语句;
 

流程图:

 

②while语句

常用于重复条件次数不确定的循环,其语法形式:

 

while(布尔表达式1) {

   代码块;

}

//while语句先判断布尔表达式1的值,其值为true,执行代码块;否则结束循环。

 

③do-while语句

语法形式:

do{

代码块;

}while(布尔型表达式);

 

(五) 跳转语句

  • break:只能在switch或者循环中使用;退出整个循环,不能再循环

  • continue:只能在循环中使用;退出本次循环,进入下一个循环的条件判断

  • goto:只能在当前函数中使用---》少用,慎用;写循环条件,不要用goto

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

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

相关文章

C#中使用I/O文件流

流&#xff0c;即是二进制数值&#xff0c;文件和流 I/O&#xff08;输入/输出&#xff09;是指在存储媒介中传入或传出数据。 在 .NET 中&#xff0c;System.IO 命名空间包含允许以异步方式和同步方式对数据流和文件进行读取和写入操作的类型。 这些命名空间还包含对文件执行压…

Android开发 Intent

1. Intent 在组件之间传递信息&#xff0c;一般需要设置发送方&#xff0c;接收方和数据。 下图是Intent 的常用属性&#xff1a; 2. Intent分类 1&#xff09;显式Intent&#xff1a;精确匹配发送方和接收方 方法一&#xff1a; startActivity(new Intent(this,MainActiv…

USB抓包分析

1、USB传输协议基本概念 一个传输(控制、批量、中断、等时)&#xff1a;由多个事务transaction组成&#xff1b; 一个事务transaction (IN、OUT、SETUP)&#xff1a;由一多个包Packet组成。USB数据在主机与usb设备间被传输&#xff0c;之间的关联叫做管道pipe。一个USB设备可以…

图片转字符画

目录一、字符画二、制作方式一、字符画 字符画&#xff1a;用字符填充创作的人物或动物图片&#xff0c;就像下面这样&#xff1a; 二、制作方式 1.使用Ps的文字工具和蒙版工具来实现 可以看下YouTube上这个教程视频&#xff1a;Photoshop CS6 Tutorial: How to Make an Edi…

企业电子招投标采购系统源码之首页设计

功能模块&#xff1a; 待办消息&#xff0c;招标公告&#xff0c;中标公告&#xff0c;信息发布 描述&#xff1a; 全过程数字化采购管理&#xff0c;打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力&#xff0c;为外部…

详解TCP、HTTP中的保活机制 | Keepalive和Keep-Alive

目录 &#x1f332; HTTP 的 Keep-Alive &#x1f332; TCP 的 Keepalive &#x1f332; 最后总结 &#x1f332; 参考资料 TCP 的 Keepalive 和 HTTP 的 Keep-Alive 是一个东西吗&#xff1f; 这是个好问题&#xff0c;应该有不少人都会搞混&#xff0c;因为这两个东西看上…

DNS协议--笔记

引自&#xff1a; 什么是DNS&#xff1f; - 知乎 (zhihu.com) 超详细 DNS 协议解析 - 知乎 (zhihu.com) IP 地址&#xff1a;一长串能够唯一地标记网络上的计算机的数字域名&#xff1a;又称网域&#xff0c;是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组…

rust语言精要

rust基本组成 编译器&#xff1a;Rust是一门静态编译型语言。Rust官方的编译器叫rustc&#xff0c;负责将 Rust源代码编译为可执行文件或其他库文件&#xff08;.a、.so、.lib、.dll等&#xff09;。特点是跨平台的&#xff0c;后端用了LLVM。 核心库和标准库 Rust语言的语法由…

Prometheus之PromQL语法详解及使用方法

本文是向大家介绍Prometheus中PromQL的查询语法以及常用语句&#xff0c;可以帮助大家理解和掌握Prometheus的查询语言。1、简介Prometheus是通过指标名称&#xff08;metrics name&#xff09;以及对应的一组标签&#xff08;labelset&#xff09;唯一定义一条时间序列。指标名…

如何选择Facebook的各种广告形式来获取用户?

Facebook广告是吸引潜在客户的重要工具&#xff0c;但盲目投放广告却很难达到理想效果。在选择广告格式时&#xff0c;需要考虑到品牌和业务目标&#xff0c;以及目标受众的特征和偏好。下面介绍8种Facebook广告格式&#xff0c;不论您是想用视频、图片或文字&#xff0c;还是结…

云端Docker搭建ABY库以及本地CLion使用

文章目录ABY的搭建以及使用前言ABY库的下载、安装及测试CLion配置后续杂项项目改名使用其他的库最后ABY的搭建以及使用 前言 仅做记录&#xff0c;仅供参考&#xff0c;不同人有不同的使用方式命令手敲&#xff0c;可能有错&#xff0c;自己辨识勿问&#xff0c;我懂的也不多…

什么牌子的蓝牙耳机音质好又便宜?国产音质好的蓝牙耳机推荐

目前的蓝牙耳机市场涌现了越来越多的蓝牙耳机&#xff0c;不同价位主打不同的性能&#xff0c;有主打佩戴的&#xff0c;主打音质的&#xff0c;主打降噪的&#xff0c;主打游戏的等等。那么&#xff0c;什么牌子的蓝牙耳机音质好又便宜&#xff1f;针对这个问题&#xff0c;我…

Redis详解(redis线程模式、数据持久化机制、主从复制、缓存穿透、缓存击穿等)

一.redis概述redis主要用作数据库、缓存和消息中间件, 支持多种语言, 是基于内存的key-value数据结构存储系统. redis支持数据的持久化, 可以将内存中的数据保存在磁盘中, 重启的时候可以再次加载进行使用.redis不仅仅支持key-value数据结构, 还支持list, set, hash等数据结构.…

CHAPTER 7 HPC集群部署 - hadoop

HPC集群部署 - hadoop1. 介绍2. 优点3. 架构及相关组件3.1 HDFS3.1.1 NameNode3.1.2 DataNode3.1.3 Secondary NameNode3.1.4 Client(客户端)3.2 Mapreduce&#xff08;分布式计算框架&#xff09;3.3. HBase&#xff08;分布式列存储数据库&#xff09;3.4 Zookeeper&#xff…

【其它】玩一玩无线网桥PicoStation M2

一、无线网桥是什么&#xff1f; 无线网桥就是代替网线实现网络连接的装置。看下面这个场景&#xff0c;摄像头与录像机之间可以直接用网线连接&#xff0c;但遇到两者相距较远的情况&#xff0c;铺设网线成本太高&#xff0c;这时候可以用无线网桥进行连接。无线网桥一般成对…

SSM项目之租赁汽车管理

项⽬描述 汽⻋租赁管理系统&#xff0c;管理系统中不仅有客户的管理还有⻋辆租赁的管理&#xff0c;租赁⻋辆公司对于租⻋的流程&#xff0c;租⻋过程的问题&#xff0c;对于客户的维护及不同维度统计租⻋的情况做数据化管理&#xff0c;⽅便租⻋公司更好的维护⻋辆和⻋辆的信…

易基因: m6A RNA甲基化研究的前期探索性实验思路|干货系列

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 近年来&#xff0c;m6A RNA甲基化作为国家自然科学基金表观遗传学研究的热门领域&#xff0c;相关研究成果层出不穷&#xff0c;高分文章不断。研究方向包括疾病发生发展、发育和分化、环…

误删磁盘恢复方法

一、工具如下&#xff1a;1、磁盘分区恢复工具(分区助手 9.8.0)---链接&#xff1a;https://pan.baidu.com/s/1t3siEwtYZl7XtcNJ8t5oLg 提取码&#xff1a;9tsy2、DiskGenius 磁盘信息查看工具&#xff08;修复要收费&#xff09;&#xff1a;链接&#xff1a;https://pan.baid…

(源码篇02)webpack5中的事件调度系统和NormalModuleFactary核心逻辑

1. 书接上回&#xff0c;从 this.factorizeQueue.add(options, callback); 开始 不是很清楚上下文的兄弟&#xff0c;可以去看下我之前写的 &#xff08;源码篇01&#xff09;浅析webpack5中Compiler中重要的hook调用过程。 此文比较干&#xff0c;各位读者开始阅读前&#xf…

反射器和Spring中的IOC/DI

1.什么是反射 1&#xff09;Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息&#xff0c;从而操作类或对象的属性和方法。本质是JVM得到class对象之后&#xff0c;再通过class对象进行反编译&#xff0c;从而获取对象的各种信息。 2&#xff09;Java属于先编译…