-
thinkphp中volist或者foreach循环嵌套层数如何修改使得超过3层
2015-01-06 13:56:48thinkphp中volist或者foreach默认设定了嵌套最多只支持3层,因此需要修改其文件。 修改core\Library\Think\Template\TagLib下的Cx.class.php文件,thinkphp中volist或者foreach默认设定了嵌套最多只支持3层,因此需要修改其文件。
修改core\Library\Think\Template\TagLib下的Cx.class.php文件,
-
嵌套层数
2010-12-22 12:26:00如果某个业务功能复杂,多层循环判断嵌套是避免不了的,但可以通过函数提取来提高代码的可读性和可修改性,降低程序的复杂性。原则:l嵌套不要超过3层l函数提取的时候,不要为了提取而提取,要把提取出来的函数从...如果某个业务功能复杂,多层循环判断嵌套是避免不了的,但可以通过函数提取来提高代码的可读性和可修改性,降低程序的复杂性。
原则:
l 嵌套不要超过3层
l 函数提取的时候,不要为了提取而提取,要把提取出来的函数从业务角度看,函数实现的是一个业务活动、一个业务步骤,或者是一个业务规则都可以。
例如:
不好例子:
For i = LBound(mystrCompTargetTypeID) To UBound(mystrCompTargetTypeID)
'查找合规性指标编号
mystrCompTargetNo = findCompTargetNo(mystrCompTargetTypeID(i))
For j = LBound(mystrCompTargetNo) To UBound(mystrCompTargetNo)
'初始化合规性指标
Call initCompTarget(strCompTargetNo, myCompTarget)
For mydtmAnalyseDate = dtmStartDate To dtmEndDate
For k = LBound(intAccountID) To UBound(intAccountID)
'根据合规性指标编号,计算合规性指标值
Set myTempColGotoutData = calCompTargetWithAccount(strCompTargetNo, intAccountID(k), mydtmAnalyseDate, myCompTarget)
For Each myGotoutData In myTempColGotoutData
colGotoutData.add myGotoutData
Next myGotoutData
Next k
Next mydtmAnalyseDate
Next j
Next i
重构后的例子:
For i = LBound(mystrCompTargetTypeID) To UBound(mystrCompTargetTypeID)
'查找合规性指标编号
mystrCompTargetNo = findCompTargetNo(mystrCompTargetTypeID(i))
For j = LBound(mystrCompTargetNo) To UBound(mystrCompTargetNo)
'计算一个合规性指标值
Call myCompTargetServ.calCompTarget(mystrCompTargetNo(j), mystrCompTargetTypeID(i), intAccountID, dtmStartDate, dtmEndDate, colGotoutData)
Next j
Next i
-
一个matlab里的排列组合或者说是循环嵌套的层数不定的问题
2016-07-01 10:59:44我要完成类似这么一个工作:我有一个n维的坐标,[a,b,c....n]坐标的范围已知,...334,343,433,333也就是2*2*2个,这是一个排列组合的问题,可是我试了用perms好像无法实现我的要求,而如果用循环嵌套的方式,因为n...我要完成类似这么一个工作:我有一个n维的坐标,[a,b,c....n]坐标的范围已知,如何将所有的坐标都填到一个矩阵里去,举例说明,假设有[a,b,c]取值在[3,3,3]到[4,4,4]之间,那么应该这之间的所有坐标为444,344,434,443,334,343,433,333也就是2*2*2个,这是一个排列组合的问题,可是我试了用perms好像无法实现我的要求,而如果用循环嵌套的方式,因为n是不定的,那么嵌套的层数不定,也不知道如何解决,请问哪位大神能给我一个解决方案?万分感谢!
基本思路
1、使用ndgrid生成N维网格数据;
2、把网格数据转换为坐标组合。参考代码
1
2
3
4
5
6
7
8
9
10
11
12
% 把每维的坐标写成向量,然后放在一个cell数组中
% 这里按照你给的例子示范(三个坐标)
C = {
3
:
4
3
:
4
3
:
4
};
% 使用ndgrid生成N维网格数据
n = length(C);
S=arrayfun(@(i)sprintf(
'x%i '
,i),
1
:
n
,
'UniformOutput'
,
false
);
eval([
'['
S{:}
']=ndgrid(C{:});'
])
S1=arrayfun(@(i)sprintf(
'x%i(:) '
,i),
1
:
n
,
'UniformOutput'
,
false
);
% 把网格数据转换为坐标组合
X=eval([
'['
S1{:}
']'
])
运行结果
1
2
3
4
5
6
7
8
9
X =
3
3
3
4
3
3
3
4
3
4
4
3
3
3
4
4
3
4
3
4
4
4
4
4
-
动态决定嵌套循环层数的方法
2015-09-12 09:02:121使用递归 void cycle(int sCnt ,int zCnt){ return ; sCnt--; if(sCnt == 0 && zCnt ==0) { return; } //for(int i=0;i;i++) { TRACE("%d\n",sCnt);...2.使用一个数组保存循环层数,通过改
1使用递归void cycle(int sCnt ,int zCnt){ return ; sCnt--; if(sCnt == 0 && zCnt ==0) { return; } //for(int i=0;i<10;i++) { TRACE("%d\n",sCnt); } cycle(sCnt ,zCnt ); }
2.使用一个数组保存循环层数,通过改变数组元素的值决定再哪层循环多少次void func(int depth, int n) { int cur = 0; //int *tab = (int *)malloc(n * sizeof(int)); int tab[20]={0};//tab[0]最外层,tab[1]次外层 for (*tab = 0; cur >= 0; ) { ++tab[cur]; //if (tab[cur] <= n) { if (tab[cur] <= iii[cur]) {//如果tab[cur]层的循环次数小于该层规定的最大次数 if (cur == depth - 1) {//如果该层是最内层 int i; for (i = 0; i < depth; ++i) { //TRACE("%d ", tab[i]); //iii[i] = i; } TRACE("%d,%d,%d,%d,%d,%d,%d\n", tab[0], tab[1], tab[2], tab[3], tab[4], tab[5], tab[6]); //TRACE("%d,%d,%d,%d,%d,%d,\n", // iii[0],iii[1],iii[2],iii[3],iii[4],iii[5]); } else { ++cur; tab[cur] = 0; } } else { --cur; } } }
-
SQL的嵌套层数
2011-02-27 19:24:00写了个存储过程,递归调用的,结果数据有点多,递归太深了,提示:超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为 32)。 <br /> 呵呵,原来还有这个限制,头一次知道。。。于是... -
降低代码嵌套层数的两种方法
2020-11-09 16:31:58一些代码在使用逻辑判断、循环和异常捕获时,嵌套层次不合理,导致嵌套层次过深。这种情况通常表现为,某个分支中的代码非常简短。这时可以采用提前返回的方式,压缩嵌套层级。 Listing 1:嵌套不合理 ... -
自动判断嵌套循环层数进行封装
2016-12-19 09:43:33List list1; @RequestMapping(value = "", method = RequestMethod.POST) ...= "POST", notes = "根据组织级别的级别查询所属组织树结构", response = VOrgParentLevel.class) @Log(operationType -
循环嵌套
2020-06-17 20:54:01嵌套不建议超过两次 规则:1.内循环作为外层循环的循环体,每次执行外层循环,内层循环都要完整的循环一次 2.假设外层循环执行m次,内层循环执行...层数多了程序效率低 常用for套for 例:打印1~100之间的质数 ... -
c语言两个for语句并列执行_for循环嵌套,C语言for循环嵌套详解
2021-02-06 16:50:51虽说是多层,事实上 for 循环嵌套的层数也不能太多。通常为两个 for 循环的嵌套,超过两个的极少使用。与单个 for 循环相比,多个 for 循环的嵌套在逻辑上更复杂一点,但并不难懂。直接给大家写一个程序:# include ... -
python循环嵌套流程图_循环嵌套的执行流程
2020-12-19 13:42:06外层循环变量累加,回到1执行,直到不满足外层循环条件,彻底退出循环例子:题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?为了显示执行流程,增加了多余的打印,如下:可以... -
C++for双层循环嵌套求1到9可以组成的所有两位数
2021-01-10 15:44:06#include "stdio.h" main() { //1到9可以的组成的所有的两位数 int g,s,shu; for(g=1;g<=9;g++){ for(s=1;s<=9;s++){ printf("%d%d\t",s,g); } } } -
循环结构(二)——循环嵌套
2018-12-12 15:23:24三种循环可互相嵌套,层数不限 嵌套循环的执行流程 -
python 多层for循环嵌套的优化方法
2020-03-11 14:20:40题目:有5个长度不一的数组a1、a2、a3、a4、a5,现各从数组中取出一个数,组成一个新的数组,要求从a1取出的数必须小于从a2取的数,同理从a2取出的数必须小于从a3取的数,以此类推,列出所有满足条件的数组。... -
Java学习_多层for循环嵌套
2019-04-30 19:35:04/* 题目:有一个整数Q,能分成4个整数(X,Y,Z,W),分得的四个整数可以表示出(1-Q)内的所有整数,求出所有的Q和X,Y,Z,W; */ public class FaMa { public static void main(String[] args) { ... -
Java中for循环嵌套的内循环和外循环
2018-08-05 15:14:25关于for循环嵌套作如下解释: 首先内层循环属于外层循环循环体的一部分,当循环体执行完以后外层循环才进入第二次循环,此过程中内层循环需要执行符合条件的完整循环。(外循环控制行数,内循环控制每一行的个数... -
Fatal Python error: Cannot recover from stack overflow.(嵌套层数过多超出限制)
2020-01-02 23:14:01猜测是是try、except进入receive()函数子层数量太多了,嵌套太多超出python规定范围导致报错。。。以后估计不能使用这种结构了。。。 那么怎么才能让函数出错后继续运行呢? 我直接加个while True循环将try\except... -
双重循环嵌套执行原理
2020-03-21 22:15:11相比较而言双重循环嵌套比较适用。 拿for循环来说; 执行原理就是:外层循环表示行数;内层循环表示列数;外层变量转换到内层,达到递增递减的效果。 案例:九九乘法表 这种嵌套首先声明两个变量( i 和 j ),外层... -
生成1~n的排列/需要n层循环嵌套的情况通常用递归实现
2017-10-11 15:33:00n层循环用递归的原因:n层循环是个嵌套的结构,嵌套的层数是个变量,手动写嵌套不知道写几层,而一想到嵌套肯定是调用函数(这句可能是敲代码的感觉),函数不断调用函数就是递归了。(自己的想法) 其实,嵌套的n... -
JAVA循环嵌套
2018-02-06 10:20:23学习内容 1丶for循环练习 遇到问题 1丶双层或多层for循环逻辑理不太顺,但是看代码可以理解...1丶水仙花数 完成c public class for2 { public static void main(String[] args) { int[] i=new int[]{2,9,8,6,5 -
嵌套循环
2020-08-10 12:19:58嵌套循环的使用 1.嵌套循环:将一个循环结构A声明在另一个循环结构B的循环体中,就构成了嵌套...外层循环控制行数,内层循环控制列数。 class ForForTest { public static void main(String[] args) { //****** -
c++如何实现用函数递归进行多重循环嵌套
2017-05-20 02:33:12如何实现用函数递归进行多重循环嵌套(不定嵌套的层数),求原理或源码。因为我要做10多重循环,且要求根据输入的值决定嵌套的层数,不然就if写死人了 -
for循环嵌套及运用
2016-03-21 17:22:53如图,i每执行一次,j都执行五次,for循环嵌套层层循环。 应用一:打印图形 (正方形,正三角,倒三角)正方形 正三角 倒三角侧三角 应用二:打印数字塔 值得注意的是i是控制行数,j是控制列数,printf函数中的... -
循环结构-嵌套循环
2021-01-03 20:07:061.嵌套循环 ...外层循环控制行数,内层循环控制列数 不在循环条件部分限制次数的结构:for(;???? 或 while(true) 结束循环有几种方式? 方式一:循环条件部分返回false 方式二:在循环体中,执行break 3 -
for循环多层嵌套运行时间过长的解决方法
2019-11-04 16:22:45for循环数据量少的时候,多层嵌套对代码的运行影响不大,当数据量达到数万条时多层嵌套的运行时间就会特别长,例如从后台获取到两万条数据,要求将这些数据整理成一个多层5层以上的嵌套对象中。 数据结构如下 data=... -
可能大家一看有点难,但只要理解for 循环嵌套,两层循环,外层循环行数,里层循环列数,搞清楚行数和列数...
2015-04-14 21:29:00namespace 打印乘法口诀{ class Program { static void Main(string[] args) { for (int i = 1; i <=9; i++)//行数循环九次, { for (int j = 1; j<=i; j++)//当i... -
JS中的循环嵌套 BOM函数
2019-10-03 08:52:40[嵌套循环特点] 外层循环转一次,内层循环转一圈 外层循环控制行数,内层循环控制每行元素个数 [做图形题思路] 1确定图形一共几行 极为外层的循环的次数 2确定每行有几种元素,代表有几个内层循环。 3 确定每种元... -
打印九九乘法表(for循环嵌套)
2021-01-30 16:38:36嵌套for循环来解决:仔细看图,每次第一层循环结束之后再println换行,第一层数字不断增大,第二层数从1开始,并与第一层的数字i与j进行比较,通过第一层的数字来限制第二层的循环次数。每次输出后加入一个\t来实现... -
Java的基本语法:if语句、for循环、while循环嵌套
2015-08-25 01:01:13一,打印三角形(for循环嵌套)1.用*打印直角三角形 需求:打印如下直角三角形 ***** **** *** ** *思路:采用for嵌套循环 外层控制行数 内层控制列数(列数为变量,每次均减1) 代码实现: class ForForDemo { ...
-
语义网的模糊本体研究
-
Rails with vue js和tailwind-源码
-
Jsplumb从入门到实战
-
swift-printer:用于将html代码打印为pdf数据的Swift软件包-源码
-
氯化钠晶体保护膜
-
【Python-随到随学】FLask第二周
-
基于Flink+Hudi构建企业亿级云上实时数据湖教程(PC、移动、小
-
Mycat 实现 MySQL的分库分表、读写分离、主从切换
-
蓝桥杯2018届C/C++大学生B组(省赛)笔记
-
ReadKeeper-android:适用于ReadKeeper的Android应用-源码
-
FastDFS 分布式文件系统部署
-
2021 年该学的 CSS 框架 Tailwind CSS 实战视频
-
一天学完MySQL数据库
-
static修饰的方法
-
ReactJS-TODO-源码
-
Open3D 统计滤波器
-
【布道者】Linux极速入门
-
2021年 系统架构设计师 系列课
-
C语言
-
WinPrivEsc:有关Windows特权升级的说明和工作策略的存储库-源码