迴圈語法

  •   365 
  • 最後發表   醍醐味  2024 十二月 04
醍醐味 發文於   2024/12/03

各位前輩好,

小弟新接觸XS,練習中遇到一個迴圈撰寫的問題。

程式碼如下,目的是求得平方和,

按預想,下面的P與SS在執行完畢後,應該是等值,

觀察實際執行的結果,SS的值是錯的,P的值正確。

請問哪邊有錯嗎?

input : n(13,"Days");

var : SS(0);
var : i(0);
for i = 0 to n-1
   SS = SS + square(close[i]);

var : P(0);
P=square(close[1])+square(close[2])+square(close[3])+square(close[4])+square(close[5])
    +square(close[6])+square(close[7])+square(close[8])+square(close[9])+square(close[10])
    +square(close[11])+square(close[12])+square(close[0]);

排序方式: 標準 | 最新
虎科大許教授 發文於   2024/12/03

SS要歸零。

SS=0;

for i = 0 to n-1
   SS = SS + square(close[i]);

醍醐味 發文於   2024/12/03

感謝教授回答,如您所說,可以正常執行了。

但這邊就有個疑問。

在程式碼裡面有宣告SS的起始值為0。

var : SS(0);

為何還需要再賦值給他?

難道每一根K棒在執行這整段程式碼的時候,

不會重設變數為程式碼的預設值嗎?

謝謝回復。

虎科大許教授 發文於   2024/12/03

var : SS(0);只會在第一根K棒執行。

醍醐味 發文於   2024/12/04

按XS程式的邏輯來說,每一支程式碼都會在一根K棒上跑一次,

為何要保留上一根K棒的數值?請問這背後的設計邏輯是甚麼?

虎科大許教授 發文於   2024/12/04

序列語言,程式會在數列一筆一筆跑,需要保留變數值,讓下一筆資料可以繼續運算。

醍醐味 發文於   2024/12/04

謝謝解惑。

發表回覆
Close