有一个序列3 3 1 3,我的逻辑是:如果1前面是3 那么将1改成3,如果3前面是1那么,将3变成1.也就是我的目标序列是 3 3 3 3,但是通过下面这段代码得到的却是 3 3 3 1,请问这是怎么回事?我的赋值语句有问题吗?
ZZ:REF(STATES,1);
IF STATES=3 AND ZZ=1 THEN STATES:=1;
IF STATES=1 AND ZZ=3 THEN STATES:=3;
贴出你完整的代码。你的序列是采用数组的方式?
另外你的序列是就是这4个数值?
[此贴子已经被作者于2016-7-4 16:50:34编辑过]
STATES是什么?你试要取最近的4个变量,数组长度是固定的?
如果1前面是3 那么将1改成3,如果3前面是1那么,将3变成1.,我这边的理解就是,只要判断第一个值是多少,后面直接改成和一个个值一样的。
variable:zz=0;
zz:=if(zz=3 and state=1,3,if(zz=1 and state=3,1,state));