04流程控制

news/2024/5/2 0:01:14/文章来源:https://blog.csdn.net/weixin_51081257/article/details/127363933

本文仅作为个人纪录

流程控制

流程控制的作用:

流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块

控制语句的分类:

控制语句分为三类:顺序、选择和循环。

“顺序结构” 代表 “先执行a,再执行b”的逻辑

“条件判断结构”代表“如果…,则…”的逻辑

“循环结构”代表“如果…,则…”的逻辑

三种流程控制语句就能表示所有的事情!这三种基本逻辑结构是相互支撑的,他们共同构成了算法的基本结构,无论怎样负责的逻辑结构,都可以通过他们表达。所以任意一种高级语言都具备上述两种结构。

if

单分支

if-单分支:
(1)结构:
if(条件表达式,这个表达式的结果是布尔值:要么是false,要么是true){
//如果上面()中的表达式返回结果是true,那么执行{}中代码
//如果上面()中的表达式返回结果是false ,那么不执行{}中代码
//PS:{}中的代码是否执行,取决于()中表达式的返回结果
}
(2)上面的代码中,我用四个单分支拼凑出四个选择,每个选择是独立的,依次判断执行的
(3)if后面的()中的条件,要按照自己需求尽量完善
(4){}可以省略不写,但是一旦省略,这个if就只负责后面的一句话,所以我们不建议初学者省略

	//实现一个功能:给出三个数(1-6),对三个数求和计算,根据和的大小来分配不同的奖品//1.给出三个数:int num1 = (int)(Math.random()*6) +1;int num2 = (int)(Math.random()*6) +1;int num3 = (int)(Math.random()*6) +1;//2.求和int sum = 0;sum += num1;sum += num2;sum += num3;System.out.println("和为:"+sum);//3.根据和判断奖品://如果和大于等于14,那么就是一等奖if(sum>=14){System.out.println("一等奖");System.out.println("恭喜你很幸运,中了一等奖");}if(sum>=10&&sum<14){System.out.println("二等奖");}if(sum>=6&&sum<10){System.out.println("三等奖");}if(sum<6){System.out.println("四等奖");}

多分支 双分支

  【2】else:隐藏了一个条件,跟上面分支条件表达式相反的功能  【3】多分支:好处:只要满足一个 分支以后,后面的分支就不需要判断了 --》效率高【4】我们写代码的时候,尽量保证else的存在--》else分支相当于“兜底”“备胎”的作用,别的分支都不走,就会走这个分支了
//实现一个功能:给出三个数(1-6),对三个数求和计算,根据和的大小来分配不同的奖品//1.给出三个数:int num1 = 6;int num2 = 4;int num3 = 2;//2.求和int sum = 0;sum += num1;sum += num2;sum += num3;System.out.println("和为:"+sum);//3.根据和判断奖品:/*利用一个多分支【1】结构:if(){}else if(){}else if(){}...else{}*/if(sum>=14){System.out.println("一等奖");}else if(sum>=10){//隐藏了sum<14System.out.println("二等奖");}else if(sum>=6){//隐藏了sum<10System.out.println("三等奖");}else{//隐藏了sum<6System.out.println("四等奖");}

随机数

随机数:在这个数在生成之前不确定这个数是多少,不可知

在Java中依靠一个类:Math类帮助我们生成,这个类中有一个方法专门用来生成随机数:

请添加图片描述

Math.random()------>[0.0,1.0)
Math.random()86------>[0.0,6.0)
(int)(Math.random()*6)+1------>[1,6]//应用到程序中:
int num1 = (int)(Math.random()*6)+1                                      

练习

[36,92]------>[0,56]+36---->(int)(Math.random*57)+32

请添加图片描述

hasNextInt()如果输入的值为int类型返回true,否则返回false

switch

switch语句会根据表达式的值从相匹配decase标签处开始执行,一直执行到break语句出或者是switch语句的末尾。如果表达式的值与任意case值不匹配,则会进入default语句(如果存在default语句的情况)。根据表达式值的不同可以执行许多不同的操作。switch语句中case标签在JDK1.5之前必须是整数(long类型除外)或者枚举,不能是字符串,在JDK1.7之后允许使用字符串(String)。大家要注意当布尔表达式是等值判断的情况下,可以使用if-else if-else多分枝结构或者switch结构,如果布尔表达式区间怕暖的情况,则只能使用if-else if-else多分支结构。

  【1】语法结构:switch(){case * :case * :.......}【2】switch后面是一个(),()中表达式返回的结果是一个等值,这个等值的类型可以为:int,byte,short,char,String,枚举类型【3】这个()中的等值会依次跟case后面的值进行比较,如果匹配成功,就执行:后面的代码【4】为了防止代码的“穿透”效果:在每个分支后面加上一个关键词break,遇到break这个分支就结束了【5】类似else的“兜底”“备胎”的分支:default分支【6】default分支可以写在任意的位置上,但是如果没有在最后一行,后面必须加上break关键字,如果在最后一行的话,break可以省略【7】相邻分支逻辑是一样的,那么就可以只保留最后一个分支,上面的都可以省去不写了【8】switch分支和if分支区别:表达式是等值判断的话--》if ,switch都可以如果表达式是区间判断的情况---》if最好【9】switch应用场合:就是等值判断,等值的情况比较少的情况下
/*实现一个功能:根据给出的学生分数,判断学生的等级:>=90  -----A>=80  -----B>=70  -----C>=60  -----D<60   -----E用if分支:if(score>=90){}else if(score>=80){}*///1.给出学生的成绩:int score = 167;//2.根据成绩判断学生的等级:switch(score/10){case 10 : case 9 : System.out.println("A级");break;case 8 : System.out.println("B级");break;case 7 : System.out.println("C级");break;case 6 : System.out.println("D级");break;default:System.out.println("成绩错误");break;case 5 :  case 4 :  case 3 :  case 2 :  case 1 :  case 0 : System.out.println("E级");break;}

循环结构

while

语法结构

while(布尔表达式){循环体;
}
     	//功能:1+2+3+4+5//1.定义变量:int num = 1;//条件初始化//2.定义一个求和变量,用来接收和:int sum = 0;while(num<=5){//条件判断sum += num;//循环体num++;//迭代}//3.输出和System.out.println(sum);

do-while

【1】while和do-while的区别:
while:先判断,再执行
do-while:先执行,再判断—》至少被执行一次,从第二次开始才进行判断
【2】什么场合使用do-while:

  		while(考试是否通过){考试;}---》不合适do{考试;}while(考试是否通过);---》合适
	//1+2+3+4+...100//while方式:/*int i = 101;int sum = 0;while(i<=100){sum += i;i++;}System.out.println(i);//101System.out.println(sum);//0*///do-while方式:int i = 101;int sum = 0;do{sum += i;i++;}while(i<=100);//一定要注意写这个分号,否则编译出错System.out.println(i);//102System.out.println(sum);//101

for

	//1+2+3+..+100//while:/*int i = 1;int sum = 0;while(i<=100){sum += i;i++;}System.out.println(sum);*///for:int sum = 0;int i;for(i = 1;i<=100;i++){sum += i;}System.out.println(sum);System.out.println(i);/*【1】for的结构:for(条件初始化;条件判断;迭代){循环体;}【2】i的作用域:作用范围:离变量最近{}  --->可以自己去控制【3】for循环格式特别灵活:格式虽然很灵活,但是我们自己写代码的时候不建议灵活着写。for(;;){}  -->死循环int i = 1;for(;i<=100;){sum += i;i++;}【4】死循环:for(;;){}while(true){}do{}while(true);【5】循环分为两大类:第一类:当型   while(){}   for(;;){}第二类:直到型  do{}while();【6】以后常用:for循环 【7】do-while,while,for循环谁的效率高?  一样高 */

关键字

在任何循语句的主体部分,均可用break控制循环的流程。

break用于强行退出循环,不执行循环中剩余的语句。

continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。

return的作用,结束当前所在方法的执行

break
		//功能:求1-100的和,当和第一次超过300的时候,停止程序int sum = 0;for(int i=1;i<=100;i++){	sum += i;	if(sum>300){//当和第一次超过300的时候//停止循环break;//停止循环}System.out.println(sum);}

break带标签

outer:for(int i=1;i<=100;i++){System.out.println(i);while(i==36){break outer;  }}
	//break的作用:停止最近的循环/*for(int i=1;i<=100;i++){System.out.println(i);if(i==36){break;//1-36}}*/for(int i=1;i<=100;i++){System.out.println(i);while(i==36){break; //1-100  ---》break停止的是while循环,而不是外面的for循环}}
continue
	//功能:输出1-100中被6整除的数://方式1:/*for(int i=1;i<=100;i++){	if(i%6==0){//被6整除System.out.println(i);}}*///方式2:for(int i=1;i<=100;i++){	if(i%6!=0){//不被6整除continue;//停止本次循环,继续下一次循环}System.out.println(i);}
	//continue:结束本次离它近的循环,继续下一次循环/*for(int i=1;i<=100;i++){	if(i==36){continue;//1-100中间没有36}System.out.println(i);}*/for(int i=1;i<=100;i++){	while(i==36){System.out.println("------");continue; //1-35+死循环}System.out.println(i);}

continue带标签

	outer:for(int i=1;i<=100;i++){	while(i==36){ continue outer;  //1-100没有36}System.out.println(i);}
return
//return:遇到return结束当前正在执行的方法for(int i=1;i<=100;i++){	while(i==36){ return;  }System.out.println(i);}System.out.println("-----");//shang'mia

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

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

相关文章

linux服务器如何查看硬盘序列号

命令: hdparm -I 硬盘绝对路径 --其中参数可以使用 “I”也可以使用 “i” ,只是大写的参数展示的数据更详细; 注:这个命令普通用户无法使用,需要使用管理员权限;

网易云ncm,QQ音乐qmc,mgg,mflac,酷狗kgm解锁转换为flac格式

酷狗音乐怎么转换mp3格式&#xff1f;使用酷狗音乐听歌的人比较多&#xff0c;通常我们都是在手机、电脑等有联网的情况听的&#xff0c;而一旦想下载下来在其他设备上听的话&#xff0c;就会碰到问题了。 在酷狗上下歌曲的时候&#xff0c;发现下的是kgm、kgma格式&#xff0c…

ICML 2020 Work shop 图对比GRACE

talk 这篇文章还是有可读的必要性。 关注点&#xff1a; 1. 丢弃边 丢弃节点的 视图增强方法。 2. 不同于原来的 dgi gmi mvgrl 采用 JS散度 或者 Infomax的目标函数&#xff0c;本文采用 infonce。 3. Pubmed数据集引发的 对 评价指标 和 评价方法的 讨论 缺点&#xff1a; …

14天阅读挑战赛(学习建议)

14天阅读挑战赛努力是为了不平庸~ 算法学习有些时候是枯燥的&#xff0c;这一次&#xff0c;让我们先人一步&#xff0c;趣学算法&#xff01;欢迎记录下你的那些努力时刻&#xff08;算法学习知识点/算法题解/遇到的算法bug/等等&#xff09;&#xff0c;在分享的同时加深对于…

Inductive Entity Representations from Text via Link Prediction

研究问题 使用文本信息完成inductive KGC任务&#xff0c;并在inductive场景下提出了一些新的评估协议 背景动机 现有的基于结构的KGE模型无法处理动态图中新加入的实体&#xff0c;而这在现实生活中非常常见&#xff08;inductive 场景定义&#xff1a;关系已知、实体未见&…

A-Level真题每期一练(11)

上期真题答案&#xff1a;1.D 2.B 3.D 4.C 5.A 接下来是今天的真题&#xff0c;一起练起来呀~ 1. An indirect tax on the production of a good will have no effect on price if demand is A inversely related to price. B of unitary elasticity. C perfectly elastic. D p…

OpenCV-Python学习(8)—— OpenCV 颜色表操作

1. 知识点 学习查找表 cv.LUT()【look up table】&#xff1b;颜色查找表&#xff1b;函数 cv.applyColorMap() 的使用。 2. cv.LUT() 函数说明 2.1 函数使用 cv.LUT(src, lut, dst)2.2 参数说明 参数说明src表示原始图像。lut表示查找表的地址&#xff0c;对于多通道图像…

mybatis-plus 代码生成工具报错:java.lang.NoSuchFieldError: GAUSS

目录 一、背景 二、问题 三、解决方案 1、网上的答案&#xff1a; 2、自己的方案&#xff1a; 四、总结&#xff1a; 一、背景 框架&#xff1a;springboot2.2.4.RELEASE、mybatis-plus3.3.1版本 二、问题 使用mybatis-plus已集成的自动生成代码框架生成代码 我当时查…

kubernets集群升级

1、环境介绍 操作系统&#xff1a;centos 7.9 kubernetes版本&#xff1a;v1.23 kubelet kubeadm kubectl版本&#xff1a;1.23.4 containerd版本&#xff1a;1.4.13 升级版本&#xff1a;v1.24.6–>v1.25.2 注意:使用kubeadm config升级失败&#xff0c;随改成逐级升级 网络…

系统分析师 - 纲要章节汇总

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 上午题 - 综合知识 章节考察内容分值计算机组成与体系结构 CISC、局部性原理、流水线、多级存储(Cache&#xff0c;内存&#xff0c;磁盘)、校验码、Flynn多处理机5 - 6操作系统PV操作与前趋图、虚拟存储、位示图…

C++类和对象(三)

文章目录前言1. 再谈构造函数&#x1f351; 构造函数体赋值&#x1f351; 初始化列表&#x1f351; 特性&#x1f345; 特性一&#x1f345; 特性二&#x1f345; 特性三&#x1f345; 特性四&#x1f351; explicit 关键字2. static成员&#x1f351; 概念&#x1f351; 特性&…

推荐有礼 | 京东云推荐返利活动说明

京东云云推客是京东云推出的服务于代理商群体的交易服务平台。为代理商提供可代理产品、分销获客工具、渠道管理工具、对账结算工具等,赋能代理商数字化升级,实现降本增效。京东云云推客是京东云推出的服务于代理商群体的交易服务平台。为代理商提供可代理产品、分销获客工具…

java学习第18步——Docker镜像

Docker管理镜像的一个工具软件1 简介(3个小时搞定)1.1 Docker介绍1.2 解决2个问题&#xff08;开发时依赖的包版本不一致&#xff0c;软件不一致&#xff09;2 Docker和虚拟机3 Docker镜像和容器&#xff08;镜像就是1个压缩文件&#xff0c;Docker软件可以来操作它&#xff0c…

API接口名称(item_search - 按关键字搜索淘宝商品)[item_search,item_get,item_search_shop等]

请求参数&#xff1a;q女装&start_price0&end_price0&page1&cat0&discount_only&sort&page_size&seller_info&nick&ppath&imgid&filter 参数说明&#xff1a;q:搜索关键字 cat:分类ID start_price:开始价格 end_price:结束价…

DOM03(达)

文章目录DOM03复习DOM作业创建元素实时生成列表表格生成文档片段事件监听器事件冒泡机制冒泡机制的应用阻止默认事件事件中的坐标值BOM页面跳转历史操作刷新界面浏览器信息读取总结DOM03 复习 双标签内容的读取 innerText: 读取页面上可见的文本innerHTML: 读取所有的HTML代码…

异常与异常捕获

异常与异常捕获 异常 异常以及异常类型 异常就是代码运行报错,行业俗语叫bug。 代码运行中一旦遇到异常会直接结束整个程序的运行,我们在编写代码的过程中药尽可能避免。 代码报错有两种:语法错误 语法错误是明眼人一眼能够看出来的,语法这是程序员的基础技能,不容有错逻辑…

【C语言】程序环境深度剖析

前言&#xff1a; 作者简介&#xff1a;爱吃大白菜1132 人生格言:纸上得来终觉浅&#xff0c;绝知此事要躬行 如果文章知识点有错误的地方不吝赐教&#xff0c;和大家一起学习&#xff0c;一起进步&#xff01; 如果觉得博主文章还不错的话&#xff0c;希望三连支持&#xff01…

Day04_vue组件_组件通信_todo案例

Day04_vue组件_组件通信_todo案例 文章目录Day04_vue组件_组件通信_todo案例知识点自测今日学习目标1. vue组件1.0_为什么用组件1.1_vue组件_概念1.2_vue组件_基础使用全局 - 注册使用局部 - 注册使用1.3_vue组件-scoped作用2. vue组件通信2.0_vue组件通信_父向子-props2.1_vue…

流式思想概述和获取流

当需要对多个元素进行操作(特别是多步操作)的时候,考虑到性能及便利性,我们应该首先拼好一个"模型"步骤方案,然后再按照方案去执行它。这张图中展示了过滤、映射、跳过、计数等多步操作,这是一种集合元素的处理方案,而方案就是一种"函数模型”。图中的每…

公司招人:34岁以上两年一跳的不要,开出工资以为看错了

导读&#xff1a;对于公司来说&#xff0c;肯定是希望花最少的钱招到最优秀的员工&#xff0c;但事实上这个想法是不太现实的&#xff0c;虽然如今互联网不太好找工作&#xff0c;但要员工降薪去入职&#xff0c;相信还是有很大难度的&#xff0c;很多人宁可在家休息&#xff0…