回 帖 发 新 帖 刷新版面

主题:do while循环错误

k=1
j=2
DO WHILE k<=28
   DO WHILE j<=29
      p=gs(k)+gs(j)
      APPEND BLANK
      REPLACE 公式 WITH p,级别 WITH "2",加数字 WITH "0"
      j=j+1
    ENDDO
 k=k+1
ENDDO
  
请问这段有什么问题。
只能得到gs(1)gs(2),gs(1)gs(3),.....gs(1)gs(29)的表达式,
不能得到gs(2)gs(3),gs(2)gs(4),。。。gs(2)gs(29)
直到gs(28)gs(29)的表达式

回复列表 (共2个回复)

沙发

k=1
j=2
DO WHILE k<=28
 [color=FF0000]  j = 2[/color]
   DO WHILE j<=29
      p=gs(k)+gs(j)
      APPEND BLANK
      REPLACE 公式 WITH p,级别 WITH "2",加数字 WITH "0"
      j=j+1
    ENDDO
 k=k+1
ENDDO 

板凳

等循环第二个K时,应该把J的值重新赋一个初始值。
j=2
如果第二个循环前不加 J= 2
那么第二层循环完以后J的值一直是 29

所以我建议你用for循环
FOR k = 1 TO 28
    FOR j = 2 TO 29
        INSERT INTO 表文件名 VALUES (gs(k)+gs(j),'2','0')
    ENDFOR
ENDFOR 
这五条命令,和你的程序效果一样!

我来回复

您尚未登录,请登录后再回复。点此登录或注册