php 循环中return,php中for循环遇上return的示例代码分享
先看下以下方法的打印结果以及返回值:public static void main(String[] args) {
System.out.println("返回值:" + testResult());
}
public static boolean testResult() {
for(int i=1; i<=5; i++) {
System.out.println("-------------->开始:" + i);
if(i == 3) {
return true;
}
System.out.println("-------------->结束:" + i);
}
return true;
}
打印结果:
-------------->开始:1
-------------->结束:1
-------------->开始:2
-------------->结束:2
-------------->开始:3
返回值:true,说明在for里return一个值的话相当于退出循环。
1)假设我们对testResult方法进行重构,抽离出for里面的逻辑到一个单独的方法:public static boolean testResult() {
for(int i=1; i<=5; i++) {
test1(i);
}
return true;
}
public static void test1(int i) throws NullPointerException{
System.out.println("-------------->开始:" + i);
if(i == 3) {
return;
}
System.out.println("-------------->结束:" + i);
}
同样放在main方法中。只不过testResult方法的for循环里直接调的重构的方法,打印结果:
-------------->开始:1
-------------->结束:1
-------------->开始:2
-------------->结束:2
-------------->开始:3
-------------->开始:4
-------------->结束:4
-------------->开始:5
-------------->结束:5
返回值:true
这说明,test1(i)方法用return;语句试图走到i=3的时候中断; 但是循环还是走完了。
2)不妨给for循环里调用的方法一个返回值,如下:public static boolean testResult() {
for(int i=1; i<=5; i++) {
return test2(i);
}
return true;
}
public static boolean test2(int i) throws NullPointerException{
System.out.println("-------------->开始:" + i);
if(i == 3) {
return true;
}
System.out.println("-------------->结束:" + i);
return false;
}
打印结果如下:
-------------->开始:1
-------------->结束:1
返回值:false
这说明,在for里调用一个有boolean返回值的方法,会让方法还没走到i=3就断掉,返回一个boolean值。
3)在for循环里需要根据条件return一个boolean值时。for循环里面的代码若需要重构成一个方法时,应该是有返回值的,但这个返回值不能是boolean,我们不妨用String代替,而在for循环里面用返回的String标记来判断是否退出循环~~
改造如下:public static boolean testResult() {
for(int i=1; i<=5; i++) {
String flag = test3(i);
if("yes".equals(flag)) {
return true;
}
}
return true;
}
public static String test3(int i) throws NullPointerException{
System.out.println("-------------->开始:" + i);
if(i == 3) {
return "yes";
}
System.out.println("-------------->结束:" + i);
return "no";
}
打印结果:
-------------->开始:1
-------------->结束:1
-------------->开始:2
-------------->结束:2
-------------->开始:3
返回值:true
说明达到了最初未对for循环里面的代码进行重构时的效果~
以上的小例子是我在对类似代码进行重构时报错的经验小结,因为实际代码里,for里面的代码重复了好几次,但是又因为for里面的代码需要根据判断条件return一个boolean值。在重构的过程中,我先是改成test1(i),再改成test2(i), 最后改成test3(i)才该对,达到未重构时的效果。
php 循环中return,php中for循环遇上return的示例代码分享相关推荐
- python 去重 字典_python按照list中字典的某key去重的示例代码
一.需求说明 当我们写爬虫的时候,经常会遇到json格式的数据,它通常是如下结构: data = [{'name':'小K','score':100}, {'name':'小J','score':98 ...
- python绘制三维曲面图-python中Matplotlib实现绘制3D图的示例代码
Matplotlib 也可以绘制 3D 图像,与二维图像不同的是,绘制三维图像主要通过 mplot3d 模块实现.但是,使用 Matplotlib 绘制三维图像实际上是在二维画布上展示,所以一般绘制三 ...
- python中if else语句_python 中if else 语句的作用及示例代码
引入:if-else的作用,满足一个条件做什么,否则做什么. if-else语句语法结构 if 判断条件: 要执行的代码 else: 要执行的代码 判断条件:一般为关系表达式或bool类型的值 执行过 ...
- python if else语句例子,python 中if else 语句的作用及示例代码
引入:if-else的作用,满足一个条件做什么,否则做什么. if-else语句语法结构 if 判断条件: 要执行的代码 else: 要执行的代码 判断条件:一般为关系表达式或bool类型的值 执行过 ...
- java应用程序接口批量访问_spring中使用mybatis实现批量插入的示例代码
有3种实现方式:foreach,spring事务,以及ExecutorType.BATCH. 1. foreach方式 这种方式实际是对SQL语句进行拼接,生成一个长长的SQL,对很多变量进行绑定.如 ...
- c语言for循环中i,C语言for循环语句中a[i][j]和a[j][i]有什么区别
匿名用户 1级 2014-04-27 回答 可以将i 理解成行,j 理解成列,a[i][j]和a[j][i]取值不同 比如,假设一个3维数组(你的是5x5),数值分别为: 1 2 3 4 5 6 7 ...
- 如何在Java中处理ConcurrentModificationException? 在循环中从ArrayList中删除元素时要当心...
从Java中从ArrayList中删除元素时常见的问题之一是ConcurrentModificationException. 如果您对索引使用经典的for循环或增强的for循环,并尝试使用remove ...
- python中for循环加速_如何让Python代码加速运行?
Python 是一种脚本语言,相比 C/C++ 这样的编译语言,在效率和性能方面存在一些不足.但是,有很多时候,Python 的效率并没有想象中的那么夸张.本文对一些 Python 代码加速运行的技巧 ...
- linux 如何跳出循环函数,(三)Linux Shell编程——Shell常用命令(输出、判断、循环、函数、包含)(示例代码)...
3. 常用命令 3.1 输出 3.1.1 echo命令 echo是Shell的一个内部指令,用于在屏幕上打印出指定的字符串.命令格式: echo arg name="coding" ...
最新文章
- Struts2自定义类型转换器、自定义拦截器和用户输入数据的验证
- java spring cloud版b2b2c社交电商spring cloud分布式微服务:分布式配置中心
- 用 VC++ 2008 编写 Windows Service(系统服务)
- [UE4]自动旋转组件
- express 4 简单实现自动注册路由功能
- 深度学习(五十七)tensorflow andorid yolo物体检测测试
- 代码示例_标准IO_fseek
- React躬行记(8)——样式
- 什么是SAP?SAP系统基础界面操作说明
- python 爬虫 糗百成人
- java多线程框架 netty,JavaSocket编程之Netty框架线程模型
- lottie动画android,Lottie动画简介
- 64K方法数限制原理与解决方案总结
- 游戏开发物理引擎PhysX研究系列:通过Unity中的物理系统学习Physx指引贴
- Android:Gradle 依赖相关
- ZYNQ-双核AMP通信(一)
- 线段树开4N空间证明
- app中jeDate日期控件的使用
- IGMP Snooping协议技术总结
- [人物]一个预言家的命运:忽悠了马云的“骗子”,风口上的先知