SAS代码为Do-While循环提供错误

时间:2018-02-13 18:11:14

标签: loops sas

我需要用SAS代码打印汽车的油耗和里程数。如果里程数是每加仑20英里。 如果燃料达到10加仑 OR 汽车行驶250英里,它应该停止产生输出。 我的代码:

data milage;
fuel=1;
do while (fuel<11);
miles =  fuel*20;
fuel+1;
output;
end;
run;

我的输出:

Code Output

燃油输出需要从前20英里的1开始,这在我的代码中是不正确的。关于我在这里失踪的任何建议。

谢谢!

1 个答案:

答案 0 :(得分:0)

  1. 为第一行添加显式OUTPUT或从0开始。如果 从0开始,确保燃料和里程的顺序 计算是正确的。
  2. 将循环条件更改为&lt; 10并添加MILES标准 同样。在这种情况下,如果燃料<10和里程,您只能循环 250.确保边界符合你的要求。

    data milage;
    fuel=0; miles=0;
    
    do while (fuel<10 and miles lt 250);
    
        fuel+1;
        miles =  fuel*20;
    
        output;
    end;
    
    run;