V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Aspx
V2EX  ›  问与答

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

  •  
  •   Aspx · Mar 13, 2017 · 1230 views
    This topic created in 3333 days ago, the information mentioned may be changed or developed.

    环境: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  
       Mar 13, 2017   ❤️ 1
    第二段 N 存了临时结果后,已经不是期望值了吧
    第二段正确的应该再引入一个变量比如 M
    m=2^n
    s=m+s
    n=n+1
    才与第一段是一样吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   982 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 20:27 · PVG 04:27 · LAX 13:27 · JFK 16:27
    ♥ Do have faith in what you're doing.