编程之舞:流程控制乐章
流程控制语句
- 1. 复合语句
- 2. 条件语句
- 2.1 if条件语句
- 2.2 switch多分支语句
- 3. 循环语句
- 3.1 while循环语句
- 3.2 do...while循环语句
- 3.3 for循环语句
- 4. 循环控制
- 4.1 break语句
- 4.2 continue语句
- 5. 实践与练习
1. 复合语句
复合语句是由一对花括号括起来的语句块,可以包含多个语句。一般用于控制流程的执行顺序。
示例代码:
public class CompoundStatementExample {public static void main(String[] args) {int a = 5;int b = 10;// 复合语句开始{int c = a + b;System.out.println("c = " + c);}// 复合语句结束// 其他语句System.out.println("a = " + a);System.out.println("b = " + b);}
}
代码运行结果:
c = 15
a = 5
b = 10
代码分析:
- 复合语句中的变量
c是局部变量,只在复合语句的作用域内有效。 - 其他语句中的变量
a和b是全局变量,在整个main函数的作用域内有效。
2. 条件语句
条件语句用于根据条件的不同来执行不同的代码块。
2.1 if条件语句
if语句根据给定的条件判断是否执行特定的代码块。
示例代码:
public class IfStatementExample {public static void main(String[] args) {int x = 10;if (x > 5) {System.out.println("x大于5");} else {System.out.println("x小于等于5");}}
}
代码运行结果:
x大于5
代码分析:
- 如果
x的值大于5,则执行if条件语句中的代码块,否则执行else中的代码块。
2.2 switch多分支语句
switch语句根据给定的表达式的值,从多个选项中选择一个分支执行。
示例代码:
public class SwitchStatementExample {public static void main(String[] args) {int day = 3;String dayOfWeek;switch (day) {case 1:dayOfWeek = "星期一";break;case 2:dayOfWeek = "星期二";break;case 3:dayOfWeek = "星期三";break;default:dayOfWeek = "未知";break;}System.out.println("今天是" + dayOfWeek);}
}
代码运行结果:
今天是星期三
代码分析:
- 根据
day的值,选择相应的分支执行。如果找不到匹配的分支,则执行default分支。
3. 循环语句
循环语句用于重复执行一段代码,直到给定的条件不再满足为止。
3.1 while循环语句
while循环语句在执行循环体之前先判断条件是否成立,如果条件成立,则执行循环体。
示例代码:
public class WhileLoopExample {public static void main(String[] args) {int i = 1;while (i <= 5) {System.out.println("i = " + i);i++;}}
}
代码运行结果:
i = 1
i = 2
i = 3
i = 4
i = 5
代码分析:
- 在每次循环开始时,先判断
i <= 5的条件是否成立。 - 如果条件成立,则执行循环体中的代码,然后将
i的值加1。 - 循环会一直执行,直到条件不再满足为止。
3.2 do…while循环语句
do...while循环语句先执行一次循环体,再判断条件是否成立,如果条件成立,则继续执行循环体。
示例代码:
public class DoWhileLoopExample {public static void main(String[] args) {int i = 1;do {System.out.println("i = " + i);i++;} while (i <= 5);}
}
代码运行结果:
i = 1
i = 2
i = 3
i = 4
i = 5
代码分析:
- 在每次循环开始时,先执行循环体中的代码。
- 然后判断
i <= 5的条件是否成立。 - 如果条件成立,则继续执行循环体。
- 循环会一直执行,直到条件不再满足为止。
3.3 for循环语句
for循环语句在执行循环之前执行一次初始化语句,然后判断条件是否成立,如果条件成立,则执行循环体,并执行循环后操作。
示例代码:
public class ForLoopExample {public static void main(String[] args) {for (int i = 1; i <= 5; i++) {System.out.println("i = " + i);}}
}
代码运行结果:
i = 1
i = 2
i = 3
i = 4
i = 5
代码分析:
- 在循环开始之前,先执行
int i = 1的初始化语句。 - 每次循环开始时,先判断
i <= 5的条件是否成立。 - 如果条件成立,则执行循环体中的代码,然后执行
i++的循环后操作。 - 循环会一直执行,直到条件不再满足为止。
4. 循环控制
循环控制用于在循环体内部控制循环的执行流程。
4.1 break语句
break语句用于立即退出循环,不再执行循环体中剩余的代码。
示例代码:
public class BreakStatementExample {public static void main(String[] args) {for (int i = 1; i <= 5; i++) {if (i == 3) {break;}System.out.println("i = " + i);}}
}
代码运行结果:
i = 1
i = 2
代码分析:
- 在循环体中使用
if条件判断,当i等于3时,执行break语句退出循环。 - 因此,循环体只会执行两次,输出结果为1和2。
4.2 continue语句
continue语句用于跳过当前循环迭代,继续执行下一次循环迭代。
示例代码:
public class ContinueStatementExample {public static void main(String[] args) {for (int i = 1; i <= 5; i++) {if (i == 3) {continue;}System.out.println("i = " + i);}}
}
代码运行结果:
i = 1
i = 2
i = 4
i = 5
代码分析:
- 在循环体中使用
if条件判断,当i等于3时,执行continue语句跳过当前循环迭代。 - 因此,循环体不会执行输出语句,输出结果为1、2、4、5。
5. 实践与练习
在学习完流程控制和循环控制后,可以尝试以下练习并进行实践:
- 编写一个程序,使用循环语句输出1到100之间所有的偶数。
- 编写一个程序,使用循环语句计算1到10之间所有整数的和并输出结果。
- 编写一个程序,使用循环语句计算阶乘并输出结果。提示:阶乘是指从1乘到给定的数,如4的阶乘为1 x 2 x 3 x 4 = 24。
可以通过编写代码实现以上练习,并运行程序查看结果。
- 编写一个程序,使用循环语句输出1到100之间所有的偶数。
for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {System.out.println(i);}
}
代码分析:
以上代码使用for循环,从1到100遍历所有数字,通过判断i是否能被2整除来判断是否为偶数,如果是偶数则输出。
- 编写一个程序,使用循环语句计算1到10之间所有整数的和并输出结果。
int sum = 0;
for (int i = 1; i <= 10; i++) {sum += i;
}System.out.println("1到10的和为: " + sum);
代码分析:
以上代码使用for循环,从1到10遍历所有整数,将每个整数累加到变量sum中,最后输出sum的值。
- 编写一个程序,使用循环语句计算阶乘并输出结果。
int n = 4; // 计算4的阶乘
int factorial = 1;for (int i = 1; i <= n; i++) {factorial *= i;
}System.out.println(n + "的阶乘为: " + factorial);
代码分析:
以上代码使用for循环,从1到给定的数n遍历,将每个数字相乘并赋值给变量factorial,最后输出factorial的值作为阶乘的结果。在这个例子中,计算的是4的阶乘。
相关文章:
编程之舞:流程控制乐章
流程控制语句 1. 复合语句 2. 条件语句2.1 if条件语句2.2 switch多分支语句 3. 循环语句3.1 while循环语句3.2 do...while循环语句3.3 for循环语句 4. 循环控制4.1 break语句4.2 continue语句 5. 实践与练习 1. 复合语句 复合语句是由一对花括号括起来的语句块,可以…...
ChatGPT是否能够进行情感融合和语气调整?
ChatGPT是一种预训练的通用语言模型,具有很强的文本生成和理解能力。在情感融合和语气调整方面,ChatGPT可以通过特定的技术和训练方法实现一定程度的情感表达和语气调整。下面将详细探讨ChatGPT在情感融合和语气调整方面的应用方法和潜力。 1. **情感融…...
C++--动态规划路径问题
1.不同路径 力扣 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。 现在考虑网格中有障碍物。那么从…...
从实践彻底掌握MySQL的主从复制
目录 一、本次所用结构如图---一主多从级联: 二、IP。 三、配置M1: 四、从库M1S1: 五、从库M2配置: 六、 从库M2S1: 一、本次所用结构如图--- 一主多从级联: 二、IP。这里M1S1和M1S2一样的࿰…...
机器学习深度学习——线性回归的基本元素
回归用来表示输入输出之间的关系。 用实际例子来解释一下线性回归:根据房屋的面积、房龄来估算房屋价格。为了实现这个预测放假的模型,需要收集一个真实的数据集,该数据集包括了房屋的销售价格、面积和房龄。 在机器学习中,这个数…...
K8S初级入门系列之八-网络
一、前言 本章节我们将了解K8S的相关网络概念,包括K8S的网络通讯原理,以及Service以及相关的概念,包括Endpoint,EndpointSlice,Headless service,Ingress等。 二、网络通讯原理和实现 同一K8S集群&…...
分段@Transactional 坑及失效问题
Transactional 背景:在某些情况下,我们需要分段transaction,在最外面没有transaction,里面分成几个transaction,保证分段是成功的。 问题代码: Service public Order getOrder1(String id) {Optional<Or…...
25、matlab里面的10中优化方法介绍——Opt_Golden法(matlab程序)
1.简述 基本思想 黄金分割法也称为 0.618 法,其基本思想是通过取试探点和进行函数值比较,使包含极小点的搜索区间不断缩短以逼近极小值点。适用于确定区间上的任何单谷函数求极小值的问题。 公式推导 设有定义在[ a , b ] [a,b][a,b]上的单谷函数 φ ( …...
点云拟合球体
前言:在很多情况下,需要根据点云来拟合球体,本博文主要介绍各种方法的拟合情况及优缺点,希望对各位小伙伴有所帮助! 目录 1. vtkFitImplicitFunction进行球拟合 2. 四点求解球 1. vtkFitImplicitFunction进行球拟合 …...
基于动态规划(DP)算法的增程式EV能量管理策略研究(MATLAB编程)
文章目录 算法代码仿真结果结果分析算法代码 clc; clear; close all; load CWTVC.mat N=length(T_z); %N=200;load minFuelConsup.txt minFuel_Pe=minFuelConsup(:...
前端知识点视频补充
使用工具: Vscode使用: 需要下载插件:open in browser。这个插件可以快速打开浏览器。 选择文件夹有两种方式:选择打开文件、拖拽方式(这种最方便) 快捷键:快速生成Htm结构文件:…...
python多线程—终止子线程
总体思路 1、获取需要终止的子线程id 2、根据子线程id,终止子线程。 过程 获取子线程id: import threading Thread_id threading.get_ident() # 获取子线程的id值线程终止函数 def async_raise(Thread_id, exctype):"""raises th…...
#P1012. [NOIP2015提高组] 神奇的幻方
题目描述 幻方是一种很神奇的 N \times NNN 矩阵:它由数字 1,2,3, \ldots ,N \times N1,2,3,…,NN 构成,且每行、每列及两条对角线上的数字之和都相同。 当 NN 为奇数时,我们可以通过以下方法构建一个幻方: 首先将 11 写在第一行…...
(学习笔记-IP)Ping的工作原理
Ping是基于ICMP协议工作的,ICMP报文封装在IP包里面,它工作在网络层,是IP协议的助手。 ICMP包头的类型字段,大致可分为两大类: 一类是用于诊断的查询消息,也就是查询报文类型一类是通知出错原因的错误消息&…...
php 进程间通信:管道、uds
1、管道 1.1、管道概念 管道是单向的、先进先出的,它把进程的输出和另一个进程的输入连接在一起。一个进程往管道写入数据,另一个进程从管道读取数据。数据被从管道中读取出来之后,将被删除,其他进程无法在读取到相应的数据。管…...
Stable Diffusion如何生成高质量的图-prompt写法介绍
文章目录 Stable Diffusion使用尝试下效果prompt的编写技巧prompt 和 negative promptPrompt格式Prompt规则细节优化Guidance Scale 总结 Stable Diffusion Stable Diffusion是一个开源的图像生成AI系统,由Anthropic公司开发。它基于 Transformer模型架构,可以通过文字描述生成…...
MySQL 高级SQL语句(一)
目录 一、高级SQL语句(进阶查询) 1.1 select 1.2 distinct 1.3 where 1.4 and 和 or 1.5 in 1.6 between 1.7 通配符 1.8 like 1.9 order by 一、高级SQL语句(进阶查询) 先准备2个表 一个location表: use m…...
SkyWalking链路追踪-技术文档首页
SkyWalking 文档中文版(社区提供) (skyapm.github.io)https://skyapm.github.io/document-cn-translation-of-skywalking/ SkyWalking-基本概念 SkyWalking链路追踪是一个用于分布式系统的性能监控工具,它帮助开发人员了解系统中各组件之间…...
AndroidStudio Memory profiler(内存分析器)
1.Record Java/Kotlin allocations 查看java 层中对象的调用栈和短时间内创建对象的次数。可用于内存抖动快速分析,可用快速查找到该对象的调用栈(等同于mat) 从上图可见,短时间内创建了23个char[] 数组,其中最大的char[] 占用20k, 查看cll stack 调用…...
【C++模板进阶】
目录 一、模板使用时的一个小注意点二、非类型模板参数三、类模板的特化3.1函数模板的特化3.2类模板的特化3.2.1全特化3.2.2偏特化 四、模板的分离编译4.1模板不支持分离编译4.2模板分离编译报错的分析4.2解决方案 五、模板的总结 一、模板使用时的一个小注意点 在使用模板时&…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
