MAXScript に関する質問と回答 > MAXScript 値の操作 > ループ変数にアクセスしたときに、実行によって 'undefined' が返されるのはなぜですか。 |
次のコードでは、Execute() 関数を使用して文字列 "x" を格納した変数 var をループ変数「x」に変換し、その値を出力します。ここでは、番号 1 ~ 10 が出力される代わりに「undefined」が 10 回返されます。
この質問の答えは、Execute が常に グローバル スコープを使用するという事実に基づいています。一方、for ループは常に新しいスコープを作成し、変数「x」はこのスコープに対してローカルです。これが、当初の問題とその解決方法を理解する上で重要な点です。つまり、Execute はグローバル スコープ内ではローカル変数「x」を「参照しない」のです。
番号 1 ~ 10 を正しく出力するための考えられる解決方法を次に示します。