编程之舞:流程控制乐章
流程控制语句
- 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解决方案 五、模板的总结 一、模板使用时的一个小注意点 在使用模板时&…...
手把手教你解决winget的InternetOpenUrl() failed错误(含GitHub镜像加速)
深度解析winget的InternetOpenUrl() failed错误及高效解决方案 当你满怀期待地打开终端,准备用winget快速安装一个开发工具时,突然跳出的"InternetOpenUrl() failed. 0x80072efd"错误提示无疑是一盆冷水。这个看似简单的网络连接问题背后&…...
Linux终极生态指南:5个实战技巧打造高效开源工作流
Linux终极生态指南:5个实战技巧打造高效开源工作流 【免费下载链接】awesome-linux :penguin: A list of awesome projects and resources that make Linux even more awesome. :penguin: 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-linux Linux生…...
遥感图像小目标检测实战:手把手教你用FFCA-YOLO复现TGRS 2024论文实验(附代码与环境配置)
遥感图像小目标检测实战:FFCA-YOLO从环境配置到结果复现全流程解析 当面对遥感图像中那些仅占3232像素的微小目标时,传统检测方法往往力不从心。FFCA-YOLO作为TGRS 2024的最新研究成果,通过特征增强模块(FEM)、特征融合模块(FFM)和空间上下文…...
【PyO3/Rust-Python测试权威框架】:Rust生态下Python扩展的零信任CI流水线设计
第一章:Python 扩展模块测试Python 扩展模块(如用 C/C、Rust 或 Cython 编写的模块)在提升性能的同时,也引入了跨语言交互的复杂性。对其开展系统性测试,是保障功能正确性、内存安全性和 ABI 兼容性的关键环节。测试环…...
利用M2LOrder实现安全高效的内网穿透方案设计与验证
利用M2LOrder实现安全高效的内网穿透方案设计与验证 1. 引言 你有没有遇到过这样的麻烦事?自己电脑上开发了一个网站或者服务,想给同事或者客户临时看一下效果,结果发现对方根本访问不了。原因很简单,你的服务跑在公司的内网或者…...
极简纯净音乐体验:铜钟音乐平台的高效使用指南
极简纯净音乐体验:铜钟音乐平台的高效使用指南 【免费下载链接】tonzhon-music 铜钟 (Tonzhon.com): 免费听歌; 没有直播, 社交, 广告, 干扰; 简洁纯粹, 资源丰富, 体验独特!(密码重置功能已回归) 项目地址: https://gitcode.com/GitHub_Trending/to/t…...
translategemma-12b-it部署案例:基于Ollama的轻量级多模态翻译服务搭建
translategemma-12b-it部署案例:基于Ollama的轻量级多模态翻译服务搭建 想象一下,你正在处理一份满是英文的产品说明书,或者收到了一张包含外文菜单的图片。传统方法可能需要你手动打字、复制粘贴,或者使用多个工具来回切换。现在…...
CosyVoice集成Java Web应用:构建智能语音播报后端服务
CosyVoice集成Java Web应用:构建智能语音播报后端服务 最近在做一个在线教育平台的项目,需要给课程内容加上语音播报功能。一开始我们试过一些现成的语音合成服务,要么价格太贵,要么声音不够自然。后来发现星图GPU平台上有个Cosy…...
抖音弹幕抓取终极指南:3分钟掌握系统代理抓包技术
抖音弹幕抓取终极指南:3分钟掌握系统代理抓包技术 【免费下载链接】DouyinBarrageGrab 基于系统代理的抖音弹幕wss抓取程序,能够获取所有数据来源,包括chrome,抖音直播伴侣等,可进行进程过滤 项目地址: https://gitc…...
智能硬件适配引擎:让黑苹果EFI配置从技术难题到即插即用的革新方案
智能硬件适配引擎:让黑苹果EFI配置从技术难题到即插即用的革新方案 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 当你第三次尝试启动黑苹…...
