//查找最小值所在位置
#statMin := 0; //只是初始化,没有赋值,暂存变量
IF #statStackIndex>1 THEN //如果有堆栈指针,然后...
FOR #tempCount := 1 TO #statStackIndex - 1 DO //FOR <循环变量> := <起始值> TO <结束值> DO <代码块> END_FOR,练习中最小值为1所以赋值为1
IF #stack[#tempCount] < #stack[#statMin] THEN //如果所有"min"找出来的变量都>count
#statMin := #tempCount; //把count的值赋给变量"min","min"就成了最小值了
END_IF;
END_FOR;
END_IF;
//取出元素,上面元素往下顺移
#item := #stack[#statMin];//最小值赋值到入栈或者出栈的元素中
IF #statMin<>#statStackIndex-1 THEN//如果最小值不等于堆栈中最后一个元素(只注释到这里了,后面都看不懂了,前面也不知道注释得对不对)
FOR #tempCount := #statMin TO #statStackIndex - 2 DO
#stack[#tempCount] := #stack[#tempCount + 1];
END_FOR;
END_IF;
#stack[#statStackIndex - 1] := 0;
#statStackIndex -= 1;
另外#statStackIndex - 1到底是堆栈往下移一个位置呢,还是代表最后一个位置?如果是往下移一个位置,那么 IF #statMin<>#statStackIndex-1 THEN又是什么意思呢?