- VBScriptについて必死に話し合うスレ
462 :デフォルトの名無しさん[sage]:2014/07/15(火) 06:32:57.22 ID:7LAbxKxV - >>455
■重大なバグ ×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)に勝てるコード」だ
|