debug跳出循环_Java基础-第04章:循环结构「云图智联」
免费学习视频欢迎关注云图智联:https://e.yuntuzhilian.com/
1. 什么是循环结构
1.1 为什么要学习循环结构
生活中,有很多“重复的去作某件事”的例子:旋转的钟表指针,滚动的车轮,日复一日的上课等等...同理,在程序中也有很多需要重复去执行的指令,比如现在要求我们输出100句“我爱java!”,按照之前的方式,我们可以这样来编写代码:
public static void main(String[] args){ System.out.println("我爱java!"); System.out.println("我爱java!"); System.out.println("我爱java!"); //此处省略96行... System.out.println("我爱java!");}
我们可以发现,用这种方式的确可以完成这件事,但好像也太笨太low了,并且如果现在又要求我们输出1万、1亿行,难道我们要把这条输出语句重复1万、1亿遍吗?显然这是不可能的。那应该怎么办呢?解决方案就是:使用循环结构!
1.2 循环结构的特点和组成
1.2.1 回到刚才的几个例子,我们来细品一下: 旋转的指针不会无条件的转下去,它必须要"有电";滚动的车轮也不会无休止的滚下去,车子必须要"有油";我们的课也不是天天都要上,前提是"今天不是周末或假期"...所以,我们可能总结出:1.2.2 循环结构的共同点: 1.循环不是无休止进行的,必须满足一定的条件才能继续--我们称它为“循环条件”:比如:"有电"、"有油"、"今天不是周末或假期"; 2.循环中重复执行的操作或步骤--我们称它为“循环操作”,比如:"指针旋转一圈"、"车轮滚动一圈"、"我们上课一天"。循环条件和循环操作是循环结构的两大必需的组成部分。1.2.3 在java语言中,常用的循环结构有3种:while循环、do-while循环、for循环。
2.while循环
2.1 什么是while循环
2.1.1 基本语法:
while(循环条件){ //循环操作}
2.1.1 实例:现在我们就可以使用while循环来轻松解决上文的问题:
public static void main(String[] args){ int i=1; while(i<=100){ System.out.println("我爱java!"); i++; //注意此条语句 }}
2.1.3 while循环的执行顺序: 1. 初识化循环变量,比如:int i=1; 2. 判断循环条件,如果满足就执行循环操作,不满足就退出循环结构,比如:i<=100; 3. 执行完一次循环操作后,再次进行循环条件的判断,进而决定是否继续执行操作。 4. 注意i++这一步,它是相对隐蔽、但却必不可少的循环操作之一。因为如果没有这一步,那i的值就永远不会改变,i<=100这个循环条件就会一直成立,循环操作就会无限的执行下去...这种循环叫作"死循环",这一步通常称之为循环变量的"迭代"或"更新"。2.1.4 特点: 如果循环条件在第一次就不满足,则循环操作一次也不会执行(比如i的初始值为101),直接跳出循环结构。即:先判断、再执行。
2.2 如何使用while循环
使用while循环解决问题的一般步骤为: 1. 分析出循环条件和循环操作; 2. 套用while循环的语法写出代码; 3. 检查循环能否正常退出。(注意:避免造成死循环)
2.3 习题:求1-100之间所有奇数的和。
2.3.1 分析:我们先要将1-100之间的数字判断奇偶,如果是奇数就累加即可。所以,重复性的操作,即循环操作就是“将奇数累加”;执行循环操作需要满足的条件,即循环条件就是“操作的数字不超过100”。2.3.2 参考代码:
public static void main(String[] args){ int i=1; //初始化循环变量 int sum=0; //总和 while(i<=100){ if(i%2==1){ //如果是奇数 sum += i; //累加 } i++; //更新循环变量 } System.out.println("1-100之间所有的奇数和为:"+sum); //2500}
3.程序调试
3.1 什么是程序调试
生活中的调试一般是指初装设备或设备出现问题时排除故障的过程。同理,在程序设计中,能够满足暂停程序、观察变量、逐条执行语句等功能的工具和方法统称为程序调试。
3.2 如何调试
3.2.1 分析错误,设置断点:在想设置断点的代码行的左边栏双击,就会出现一个圆点(即断点),再次双击可取消断点。也可以右击代码行左侧,在弹出的菜单中选择“Toggle Breakpoint”选项来设置或取消断点。3.2.2 启动调试,单步运行:单击“debug”按钮,即可进入debug视图,按F5可“单步跳入”(Step Into),程序会跳入本行代码的内部,如进入方法的内部;按F6键“单步跳过”(Step Over),程序仅执行本行代码,执行后则跳到下一行代码。
4.do-while循环
4.1 什么是do-while循环
4.1.1 我们知道:如果循环条件一开始就不满足时,while循环就一次也不执行循环操作;所以为了解决这一缺陷,前辈们创造了do-while循环。4.1.2 基本语法:
do{ //循环操作}while(循环条件)
4.1.3 实例:云小图去操场跑步,如果还有力气就一直跑下去。统计:当跑步结束时他跑过的圈数。 1.分析:“跑步一圈”是个重复性的动作,即循环操作;“还有力气”是循环操作能够继续的条件,即循环条件。但是,无论是否“还有力气”,第一圈肯定是要跑的,即无论循环条件是否满足,都要先执行一次循环操作,所以我们应该选用do-while循环来解决这个问题。 2.参考代码:
public static void main(String[] args) { Scanner input=new Scanner(System.in); int count=0; //圈数 String answer; //回答 do { //循环操作 count++; //计数 System.out.println("已跑完第"+count+"圈"); System.out.println("还有力气吗?(y/n)"); answer=input.next(); } while (answer.equals("y")); //循环条件 System.out.println("一共跑了"+count+"圈");}
4.1.4 执行顺序: 1. 初识化循环变量; 2. 执行一次循环操作; 3. 判断循环条件是否满足,进而决定是否继续执行循环操作。4.1.4 特点: 先执行,再判断。所以循环操作至少会执行一次。
4.2 如何使用do-while
使用do-while循环的一般步骤为: 1. 分析出循环条件和循环操作; 2. 套用do-while循环的语法写出代码; 3. 检查循环能否正常退出。(注意:避免造成死循环)
4.3 注意:要在while或do-while的循环操作中更新循环变量,否则容易造成死循环(无限循环)。
4.4 习题:从控制台录入个数不确定的整数,输入0时结束。输入结束后分别统计用户录入的正数和负数的个数。
4.4.1 分析: 1.要统计两种数字的个数,先要创建两个变量用来计数。 2.每得到一个数字,先要判断它们的正负,根据结果将相应的用来计数的变量加1即可。 3.第2步是一个重复性的操作,即循环操作,循环条件为:输入的数字不是0。 4.必须先得到一个数字才能判断,所以我们应该选用do-while循环来解决这个问题。4.4.2 参考代码:
public static void main(String[] args) { Scanner input=new Scanner(System.in); int zheng=0; //正数的个数 int fu=0; //负数的个数 int num; do { System.out.print("请输入一个整数(输入0退出):"); num=input.nextInt(); if(num>0) {zheng++;} if(num<0) {fu++;} } while (num!=0); //循环条件 System.out.println("正数的个数为:"+zheng); System.out.println("负数的个数为:"+fu);}
4.5 while与do-while的区别
两者最大的区别即为执行顺序的不同,while循环是先判断再执行,do-while循环是先执行再判断。所以在解决问题时要根据具体情况合理的选用。
5.for循环
5.1 什么是for循环
5.1.1 对于循环次数明确、固定的while循环,可以使用for循环的形式进一步简化代码。5.1.2 基本语法:
for (表达式1;表达式2;表达式3) { //循环操作}
5.1.3 实例:比如上文中的输出100遍“我爱java!”,它的循环次数是固定的(100次),所以就可以使用for循环来进一步简化代码:
public static void main(String[] args) { for(int i=1;i<=100;i++) { System.out.println("我爱java!"); }}
5.1.4 说明:
表达式形式功能举例表达式1赋值语句初始部分,声明循环变量并赋值int i=1表达式2条件语句循环条件i<=100表达式3赋值语句迭代部分(通常用来更新循环变量)i++
5.1.5 执行顺序: 1.执行初始部分(int i=1); 2.判断循环条件 (i<=100); 3.如果循环条件的结果为true,则执行循环体;如果循环条件的结果为false,则退出循环,步骤4、5均不执行; 4.执行迭代部分,更新循环变量的值(i++); 5.依次重复执行步骤2-4,直到退出循环。
5.2 如何使用for循环
5.2.1 使用for循环结构的步骤和使用while与do-while循环结构一样: 1.找出循环条件和循环操作。 2.套用for循环语法写出代码。 3.检查循环是否能够退出。
5.2.2 注意: 1. 3个表达式在语法上都是可以省略的,但中间的“;”不能省,并且要注意循环能不能正常结束,避免造成死循环。 2. 在实际开发中,为了提高代码的可读性,尽量不要省略这些表达式。 3. 表达式1可以由多个表达式组成,中间用“,”隔开即可(会在后面的章节用到这种写法)。 4. 对于循环次数确定的情况,通常选用for循环;对于循环次数不固定不明确的情况,通常选用while或do-while循环
6.跳转语句
在实际开发中,可能会遇到下面几种特殊的、但很现实的情况: 1. 需要停止整个循环,比如在“车轮一圈圈滚动”的过程中,虽然“还有油”,但车子出了故障,那么剩下的循环操作就不能继续下去了; 2. 需要跳过本次循环,但之后的循环操作还要继续,比如在“日复一日的学习”过程中,虽然某天不是“放假或周末”,但今天我生病了,那就无法上课了,但是明天还要继续; 3. 需要从程序的一部分跳到其他部分; 4. 要解决这些特殊情况,就需要使用跳转语句来完成。Java支持3种形式的跳转:break、 continue和return。
6.1 break语句
6.1.1 我们第一次使用break语句是在switch选择结构中,用来跳出整个switch结构;6.1.2 break还可以用在for/while/do-while循环结构,用来终止整个循环,使程序跳到循环体外的后一条语句。在循环结构中,位于break后的语句将不再执行,循环也全部停止执行。并且它通常与if条件语句一起配合使用,即:当发生了某种特殊情况时就停止整个循环。6.1.3 实例:依次输入5名学生的成绩并计算平均分,如果其中输入了负数,则给出提示并结束程序。
public static void main(String[] args) { Scanner input = new Scanner(System.in); int sum=0; //总分 boolean flag=true; //创建一个布尔变量,作为是否输入了负数的标记 for(int i=0;i<5;i++) { System.out.println("请输入第"+(i+1)+"门课程的成绩:"); int score=input.nextInt(); if(score<0) { //如果成绩为负 flag=false; //更改标记 break; //跳出整个循环结构 } sum+=score; } if(flag) { //根据上文得到的标记来决定:输出平均分或输出错误提示 System.out.println("平均分是:"+sum/5); }else { System.out.println("成绩输入错误,循环停止,程序结束!"); }}
6.2 continue语句
6.2.1 continue语句可以用于for循环结构,位于它后面的语句将不再执行,使程序先跳转到迭代部分,然后继续下一次循环(continue的原义正是“继续”)。6.2.2 continue语句也可以用于while和do-while循环结构中,但只能用在循环结构中。6.2.3 实例:输出1~20中所有非4的倍数的数字及其个数。(使用continue实现) 分析:这个问题其实大概有两种思路: 1.正向思维:通过for循环遍历1-20间所有的数字,如果当前这个数字不是4的倍数,则输出它,并计数; 2.反向思维:默认将所有的数字全部输出并计数,如果遇到4的总数,则跳过“输出和计数”的步骤,继续下一个数字。题目要求我们使用continue来实现,所以我们必须使用第2种思路来解决。参考代码如下:
public static void main(String[] args){ int count=0; for(int i=1;i<=20;i++){ if(i%4==0){continue;} System.out.print(i+""); count++; } System.out.println(); System.out.println("1-20之间所有非4的倍数的数字的个数为:"+count); }
6.2.4 continue与break的区别: 1. break用于终止整个循环,程序会直接跳转到循环体外的后一条语句。 2. continue用于跳过本次循环中它后面的语句,进入下一次循环。
6.3 return语句
return语句用来结束当前方法的执行并退出,返回到调用该方法的语句处,具体会在后面的课程中详细讲解。
7.习题:一张纸的厚度大约是0.08毫米,问:将这张纸对折多少次之后能达到珠峰的高度(8848.13米)。
7.1 每对折一次,高度翻倍并计数,这是重复性的动作,所以我们可以考虑使用循环结构来解决,要重复多少次呢,不清楚,所以考虑使用while或do-while来解决。参考代码如下:
public static void main(String[] args) { double height=0.00008; //注意要将毫米转化为米 int count=0; //次数 while (height<8848.13) { height *= 2; //翻倍 count++; //计数 } System.out.println("对折次数为:"+count); //27}
7.2 虽然循环的次数不明确,但是我们可以设置一个较大的、足够的值,这样就可以使用for循环的语法来简化代码;另外,当高度值等于或超过8848.13时,使用break来跳出循环即可。参考代码如下:
public static void main(String[] args) { double height=0.00008; int count; for (count = 1; count <= 100; count++) { height *= 2; if(height>=8848.13) { break; } } System.out.println("对折次数为:"+count); //27}
7.3 以上两种方法都是将对折的次数作为循环变量,但是细想一下:对折后的高度也是一个呈规律性变化的量,并且有初始值和结束值,那么能不能拿它作为循环变量呢?试一下:
public static void main(String[] args) { int count=0; for(double height=0.00008;height<8848.13;height *= 2) { count++; } System.out.println("对折次数为:"+count); //27}
问题解决,并且代码更加的简洁!7.4 经验:对于这一类问题,我们尽量选用“有始有终”的、呈规律性变化的量作为循环变量。比如另一个类似的问题--弹球落地:一个弹球从100米的高度自由落下。每次落地后,它会反弹至原高度的一半后再次落下。问:(1)经过几次反弹后弹球会停止(可将“停止”理解为反弹高度小于1毫米);(2)在这次落地过程中,弹球一共经过了多少路程。建议大家动手试一试。
8.常用单词
1. while:当...的时候2. do:作,干2. index:索引、下标3. bug:虫子、漏洞4. debug:抓虫子、排除漏洞4. equal:相等、等于5. step:步伐、步入6. error:错误、误差7. count:数量、个数7. rate:比例、速度8. customer:消费者、顾客、客户9. break:打断,终止10. flag:旗帜、标记9. continue:继续10. return:返回、回报
免费学习视频欢迎关注云图智联:https://e.yuntuzhilian.com/
debug跳出循环_Java基础-第04章:循环结构「云图智联」相关推荐
- c 结构体在声明时赋值_Java基础知识 初识Java 循环结构进阶 数组 数据类型 各种运算符...
今天给大家带来的是初级Java基础部分的知识:包括初始Java.变量.常量.数据类型.运算符.各种选择结构.循环结构.数组等Java的基础语法部分!最后还有****循环结构的进阶****,步骤超详细, ...
- c语言第四章循环程序设计,C语言程序设计教程第4章-循环结构程序设计
<C语言程序设计教程第4章-循环结构程序设计>由会员分享,可在线阅读,更多相关<C语言程序设计教程第4章-循环结构程序设计(42页珍藏版)>请在人人文库网上搜索. 1.C语言程 ...
- c语言设计第六章答案,c语言第六章 循环结构程序设计(习题册答案)
第六章 循环结构程序设计 基础练习(A) 一.选择题 1.C语言中while和do-while循环的主要区别是(A). A) do-while的循环体至少无条件执行一次 B) while的循环控制条件 ...
- Java 北大青鸟 第一学期 第六章 循环结构(二) 上级练习+课后作业
第一学期 第六章 循环结构(二) 实例1 实例3 输入任意一个整数,根据这个值输入值为6 示例4 设计客户的年龄层次 实例6 实例7 循环录入会员信息 验证用户信息 鸡兔同笼 男人女人小孩 总结 源码 ...
- c语言菜单程序循环结构举例,C语言程序设计课件 第4章 循环结构.ppt
C语言程序设计课件 第4章 循环结构.ppt 循环嵌套应用举例 [例4.8]从键盘上输入n的值为5,编程打印具有如下规律的对称图形. @ @ @ @ @ @ @ @ @ @ @ @ @ 行号(i)空格 ...
- c语言第六章条件型循环结构,C语言课件(第六章 循环结构)
C语言课件 第六章 循环结构 在许多复杂的问题中,常常需要做大量的类似的计算处理,这些类似的相同的处理过程存在重复性过程,即在某种条件成立的情况下需要处理相同的操作时,就要使用循环结构来完成. 类似于 ...
- 第6章 循环结构程序设计
第6章 循环结构程序设计 声明:文中观点仅代表个人,其中文字.图片未经本人许可,不得部分或全部转载,违者所造成影响后后果自负!联系本人方式:80368704@qq.com QQ:8036870 ...
- c语言利用循环结构解决密码转换,C语言课件第六章循环结构.ppt
C语言课件第六章循环结构 第6章 循环结构程序设计 6.1循环结构的组成 循环结构:描述有规律的重复操作问题. 组成:要重复执行的操作,重复执行所需的条件. 例6.1:求10! . 分析:计算1*2* ...
- c语言如何实现一只蜗牛爬的循环,[工程科技]第五章 循环结构程序设计c语言程序设计.ppt...
[工程科技]第五章 循环结构程序设计c语言程序设计 第5章 循环结构程序设计 while语句 while语句 do while语句 do while语句 do while语句 do while语句 d ...
最新文章
- 吴裕雄--天生自然 高等数学学习:高阶偏导数
- python操作word填表_Python 自动化办公—Word 文本操作命令
- 软件作坊模式工件应用论
- mysql left day 7_day7-mysql函数
- 为什么TCP连接至少3次握手
- MySQL read-c_技术分享 | MySQL C API 参数 MYSQL_OPT_READ_TIMEOUT 的一些行为分析
- audio隐藏下载按钮
- python开发个人博客_[Web开发] Flask+Python 开发个人博客(一)
- 未来茅台酒会怎样跌下神坛?
- RedHat搭建DHCP服务器
- MDK5 (Keil5)注册机破解
- 【开发常识】手机号为什么要隐藏中间的四位数?
- 采集百度搜索引擎的10个经典方法
- SegmentFault 社区访谈 | 有位公子在奇舞
- Redis5.0集群搭建(三主三从)、添加一主一从、JedisCluster连接集群
- endnote中文格式参考文献标注
- 通过加速或跳过网页视频解决进度条无法拖动问题
- 麦肯锡著名的三大结构化工具:金字塔原理、MECE和逻辑树
- 2.1、函数的返回值
- FPGA自学笔记--串口通信发送多字节数据(verilog版)