网站首页 > java教程 正文
这篇文章我们将介绍一下for循环的使用,以及通过for循环学习一下break、continue和else子句的使用,如果大家对循环掌握得不是很扎实,可以先看一下《Python的while语句用法介绍 》,对循环有一定的认识之后,循序渐进的学习才更容易掌握。本文章使用的环境是:Windows 7 + Python 2.7.17 + PyCharm Community Edition 2016.1.5
我们通过一个小例子来看一下for的用法。假定有一个小公司,我们想计算一下全公司有多少个员工姓"张"。源代码如下:
执行结果如下:
雇员列表employee_list是公司所有员工的姓名;family_name是指要搜索的姓,比如我们这个例子中,是要搜索全公司所有姓"张"的员工;employee_num是一个计数器,代表有多少个姓"张"的员工;
这个for循环将迭代整个employee_list,要特别注意一下本行的最后要以冒号结尾,for循环的语句块都要进行缩进,通过缩进对齐确定哪些语句是循环要执行的语句。这一点是和C/C++语言完全不同的,大家要注意。我们看到在这个实例中,如果找到一个姓"张"的同事,就会给计数器employ_num加1。
这里有一个小技术点就是find函数,在这里我们通过find函数在一个字符串(employee_name)中查找一个子串(family_name),如果能够找到,则返回子串的位置数值,如果找不到,则返回-1,所以当返回值不等于-1时,我们给计数器employee_num加1
当循环结束后,我们通过计数器(employee_num)来判断一下是否找到了这样的人,如果找到了,则employee_num一定不会再是初始值0,所以我们根据判断结果是否为0,将对应的结果显示在控制台上,反馈给用户。
通过这个例子,我们看到了for循环的基本用法,下面我们再增加一些技术要点。这次我们在雇员列表employee_list中,查找一下有没有叫"张2"的员工。
在这个实例中,如果找到了这名员工,程序将使用break语句跳出循环,而不需要从头到尾迭代完。如果从头到尾迭代完也没有找到的话,则会执行else子句,这里的else子句从缩进上可以看出,是与for语句对齐的,所以它是与for配对使用的,而不是与if配对使用的。我们这个程序的执行效果如下,说明"张2"是找到了。
break语句的含义是当程序执行此语句时,将跳出当前循环,开始执行整个循环之后的语句。与之相对应的是continue语句,其含义是当程序执行此语句时,将跳出此语句之后循环体中要执行的语句,同时继续迭代下一个变量,继续循环。
说起来比较抽象,我们看一个关于continue的实例吧,还是上面的这个小公司,现在要统计一下姓王的同事的人数,上面的例子我们统计的是姓张的同事,姓张的人太少了,效果不好,这回咱们统计姓王的。可是现在有一个小问题,有一个叫"王4"的大哥,他这周正在办理退休手续,所以咱们统计的时候,就要把他剔除出去,不要计算他了。那么程序如下:
在这个实例中,我们增加了一个判断,如果雇员姓名employee_name是"王4",则continue,这样循环就不会再执行下面的加1的语句,并且再次返回循环体的开头,开始下一次循环,它并没有像break一样跳出循环体。所以最后的执行结果就是7个姓王的同事,只计算了6个。
通过上面的3个实例,我们讲解了一下for循环,break,continue语句和else子句的使用。大家可以自已尝试着把程序写一遍,感受一下这些技术要点。
猜你喜欢
- 2024-12-03 JAVA循环结构while, do,while永远执行,直到冒烟「第10集」
- 2024-12-03 Python | for 循环
- 2024-12-03 一招教你搞定西门子博图SCL编程语句中FOR循环指令,so easy
- 2024-12-03 Java中如何终止运行中的线程?死循环是如何跳出来的?
- 2024-12-03 【Java基础】Java的循环结构:for循环、while循环、do-while循环
- 2024-12-03 Java基础—解析循环结构
- 2024-12-03 Python编程之第9节(循环控制 for)
- 2024-12-03 js forEach跳出循环
- 2024-12-03 Java基础入门(循环结构)
- 2024-12-03 java基础语法糖之增强for循环
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)