程序开发中for循环的注意事项及原理?

如题所述

for循环是很多开发语言中最常用的一个循环。
for 有两种形式:一种是数字形式,另一种是通用形式。
数字形式的 for 循环,通过一个数学运算不断地运行内部的代码块。 下面是它的语法:
stat ::= for Name ‘=’ exp ‘,’ exp [‘,’ exp] do block end
block 将把 name 作循环变量。 从第一个 exp 开始起,直到第二个 exp 的值为止, 其步长为第三个 exp 。 更确切的说,一个 for 循环看起来是这个样子
for v = e1, e2, e3 do block end
注意下面这几点:
所有三个控制表达式都只被运算一次, 表达式的计算在循环开始之前。 这些表达式的结果必须是数字。
var,limit,以及 step 都是一些不可见的变量。 这里给它们起的名字都仅仅用于解释方便。
如果第三个表达式(步长)没有给出,会把步长设为 1 。
你可以用 break 和 goto 来退出 for 循环。
循环变量 v 是一个循环内部的局部变量; 如果你需要在循环结束后使用这个值, 在退出循环前把它赋给另一个变量。
通用形式的 for 通过一个叫作 迭代器 的函数工作。 每次迭代,迭代器函数都会被调用以产生一个新的值, 当这个值为 nil 时,循环停止。
注意以下几点:
explist 只会被计算一次。 它返回三个值, 一个 迭代器 函数, 一个 状态, 一个 迭代器的初始值。
f, s,与 var 都是不可见的变量。 这里给它们起的名字都只是为了解说方便。
你可以使用 break 来跳出 for 循环。
环变量 var_i 对于循环来说是一个局部变量; 你不可以在 for 循环结束后继续使用。 如果你需要保留这些值,那么就在循环跳出或结束前赋值到别的变量里去。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-06-24
试一下我的修改:work_3(nmat); %多行两列的矩阵A_1 = A(:,1);A_2 = A(:,2);s1 = numel(unique(A_2)); % length(unique(A_2));count = hist(A_2,unique(A_2));p = 1; k = 1; q = count(1);D = work_5(A_1,p,q);for j = 1:(s1-1)if (length(D) >= 3)output = D;sprintf('%4d',output);D = [];p = k + count(j);q = q + count(j+1);D = work_5(A_1,p,q);k = p;else p = p; q = q + count(j+1);D = [];D = work_5(A_1,p,q);k = k + count(j);endend
相似回答