アカウント名:
パスワード:
一度しか通らない道だから実行結果に問題はないんだけど、コードの途中に突然変数の宣言が現れてその変数を一時的に使ってたりとかなら・・・。あとプロシージャの中でGotoとGosubとか日常的に使いまくりだったりとか・・・。
でもちゃんと動くからいいじゃない。人に見せるわけでもないしいいよね。どうせ見るのは自分だし・・・。的な思いからそのままになってます。
コードの途中に突然変数の宣言が現れてその変数を一時的に使ってたりとかなら・・・。
え、これってダメなの?使う場所の近くで宣言する方がいいって思ってるんですが。
言語にもよるけど変数のスコープは小さければ小さいほどいい。javaで言えばfor(int i=1 ; i < MAX ; i++ ){ // ナニかの処理}みたいなのは推奨されてる。(この場合のループカウンタはfor文の中だけで有効)
ただ、たかだが50行~100行程度のメソッドで、スコープが得に小さくなるわけでもないのに宣言だけあちこちに乱立するくらいなら、メソッドの先頭にまとめちゃうのも一つの手だとは思う。
これが50~100行程度のメソッドで、他の変数が全部先頭にまとめられているのに、あとで書き足した初心者プログラマーが変数宣言を途中に追加したら、他の理由がない限り先頭に入れるように書き直せと指示すると思う。
> for(int i=1 ; i < MAX ; i++ ){これって
for(int i = 0; i < MAX; i++) {
か
for(int i = 1; i < MAX + 1; i++) {
ではないですか?
変数のスコープをなるべく小さくするのは、初期化忘れの防止が1つの動機ですが不適当な値での初期化に気づかせる効果もあります。
あと
for (int i = 0; i < LONG_MAX; i++) {
であったら、i
一般的な32bit環境ではintとlongのサイズは共に32bitなのでintからlongに変える必要が生じたとしたら
・intが16bitの組み込みマイコンと格闘していた・longが64bitの64bitプロセッサと格闘していた・相当変態的なABIを採用する32bitマシンと格闘していた
のうちのどれかでしょう。2つ目は根本的に仕様を見直した方がよさそうですが、1つ目なら割とよくある話だと思います。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs
VBだけど (スコア:0)
一度しか通らない道だから実行結果に問題はないんだけど、
コードの途中に突然変数の宣言が現れてその変数を一時的に使ってたりとかなら・・・。
あとプロシージャの中でGotoとGosubとか日常的に使いまくりだったりとか・・・。
でもちゃんと動くからいいじゃない。
人に見せるわけでもないしいいよね。
どうせ見るのは自分だし・・・。
的な思いからそのままになってます。
Re: (スコア:1)
コードの途中に突然変数の宣言が現れてその変数を一時的に使ってたりとかなら・・・。
え、これってダメなの?
使う場所の近くで宣言する方がいいって思ってるんですが。
Re: (スコア:2, すばらしい洞察)
言語にもよるけど変数のスコープは小さければ小さいほどいい。javaで言えば
for(int i=1 ; i < MAX ; i++ ){
// ナニかの処理
}
みたいなのは推奨されてる。(この場合のループカウンタはfor文の中だけで有効)
ただ、たかだが50行~100行程度のメソッドで、スコープが得に小さくなるわけでも
ないのに宣言だけあちこちに乱立するくらいなら、メソッドの先頭にまとめちゃう
のも一つの手だとは思う。
これが50~100行程度のメソッドで、他の変数が全部先頭にまとめられているのに、
あとで書き足した初心者プログラマーが変数宣言を途中に追加したら、他の理由がない
限り先頭に入れるように書き直せと指示すると思う。
Re: (スコア:2)
> for(int i=1 ; i < MAX ; i++ ){
これって
か
ではないですか?
変数のスコープをなるべく小さくするのは、初期化忘れの防止が1つの動機ですが
不適当な値での初期化に気づかせる効果もあります。
あと
であったら、i
Re:VBだけど (スコア:0)
>
> であったら、i は int ではなく long である必要があることに気づくので、
> 変数の型が妥当かに気づく機会も与えています。
その前に本当に LONG_MAX(約20億?)回の繰り返し処理が必要なのか問い詰めたい。
Re: (スコア:0)
一般的な32bit環境ではintとlongのサイズは共に32bitなので
intからlongに変える必要が生じたとしたら
・intが16bitの組み込みマイコンと格闘していた
・longが64bitの64bitプロセッサと格闘していた
・
相当変態的なABIを採用する32bitマシンと格闘していたのうちのどれかでしょう。
2つ目は根本的に仕様を見直した方がよさそうですが、
1つ目なら割とよくある話だと思います。