VBScriptについて必死に話し合うスレ
■ このスレッドは過去ログ倉庫に格納されています
0462デフォルトの名無しさん
2014/07/15(火) 06:32:57.22ID:7LAbxKxV■重大なバグ
×If Arr(J) > A(J + 1) Then
○If Arr(J) > Arr(J + 1) Then
×Swap A(J), A(J + 1)
○Swap Arr(J), Arr(J + 1)
■非効率的な処理
× For I = 0 To UBound(Arr)
For J = 0 To UBound(Arr) - 1
○ u = UBound(Arr)
For I = 0 To u
For J = 0 To u - 1
※>>455のコードだと、配列要素数が10000なら、
UBoundによる配列上限取得を10001回行うことになり、非効率的
1行程度コードが増えても処理量を減らすのが基本(特にループ内では)
■その他
Option Explicitを付けて、変数を宣言する
※それをしなくてもバグの無いコードが書けるなら使わないのは勝手だが
現に「 Arr 」を「 A 」と書いてしまって、致命的なバグを生じさせているので
そのレベルの人はOption Explicitを使うクセを付けること
上記の指摘に沿って開き直したものが「これ(>>455)に勝てるコード」だ
■ このスレッドは過去ログ倉庫に格納されています