V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Aspx
V2EX  ›  问与答

智障如我,踩了个 VFP DOwhile 循环的坑

  •  
  •   Aspx · 2017-03-13 11:21:51 +08:00 · 934 次点击
    这是一个创建于 2848 天前的主题,其中的信息可能已经有所发展或是发生改变。

    环境:VFP9

    问题:编程序求 2+4+8+16+32+…这样的数之和。如果累加数大于 980 时,则程序终止并输出结果

    以下代码能正确输出结果:

    SET talk OFF 
    CLEAR
    s=0
    n=1
    DO WHILE s <= 980
    	s=2^n+s
    	n=n+1
    ENDDO
    ?s
    SET TALK ON
    CANCEL
    

    以下代码不能正确输出结果:

    SET talk OFF 
    CLEAR
    s=0
    n=1
    DO WHILE s <= 980
    	n=2^n
            s=n+s
    	n=n+1
    ENDDO
    
    ?s
    SET TALK ON
    CANCEL
    

    我是个半吊子,不知为何会有这样的差别

    dingz
        1
    dingz  
       2017-03-13 11:39:23 +08:00   ❤️ 1
    第二段 N 存了临时结果后,已经不是期望值了吧
    第二段正确的应该再引入一个变量比如 M
    m=2^n
    s=m+s
    n=n+1
    才与第一段是一样吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2527 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 15:31 · PVG 23:31 · LAX 07:31 · JFK 10:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.