是否有一種有效的方法來運行嵌套for循環,避免任何具有相同值的計數器。顯然,我可以運行一些if語句,如下所示,但有沒有更有效的方法?運行嵌套循環而不重複變量?
for i = 1 to 20:
for j = 1 to 20:
if (i == j):
continue
else:
for k = 1 to 20:
if (i == k) or (j == k):
continue
else:
do something useful with these different numbers
編輯:變量是不能互換的,所以[2,1,0]是不同的[0,1,2]。 「做一些有用的事情」將對數字進行大約6次數值檢查,包括對它們進行加法,平方和平方根。
謝謝,並對可能不尋常的僞代碼(和不斷編輯)抱歉。
你可以通過分別反轉if('i!= j'和'(i!-k)和(j!= k)')的邏輯來擺脫else部分),但這不是真正的效率,而是可讀性。 – fvu 2012-07-12 17:06:42
您的循環嵌套可能會影響性能(由於對分支預測和內存局部性的影響),但這取決於「對這些不同的數字執行一些有用的操作」中的內容。 – Brian 2012-07-12 17:26:02