- - PR -
VBでcontinueの代わりって…
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-01-18 14:29
ども、ぼのぼのです。いつも参考にさせて頂いております。
さて、本件は質問というより意見を聞かせて頂きたいというものです。 ここしばらく、仕事の都合でVB.NETを使うことが多いのですが、VBにはCやJavaのcontinueに相当するものがありません。代替の処理としては、私が思いつく限り以下の3つです。 @ Goto文を使う A continueしたい箇所以降の処理を巨大なIfブロックで囲む B ループの中をサブルーチン化し、Returnで代用する この3つの方法、それぞれ長短があります。昔Cとかやってた時は「Goto文は使うな!」と言われてたので@はなんか違和感ありますし、Aは多様するとやたらとネストが深くなってしまいます。かといってBも使い過ぎると関数が増えすぎてかえって読みづらくなりますし…まぁ状況によって使い分けろ、ってことなんでしょうけど。 そこで皆さんの意見を聞いてみたいんですけど、continueに相当する処理をVBで書くときに、こうするとスマートになりますよとか、ウチの会社ではこういう方針で統一されてます、とかありましたら参考までにお聞かせ頂けないでしょうか?まぁ何を以ってスマートと呼ぶかも微妙なんですが… よろしくお願いします。m(_ _)m | ||||
|
投稿日時: 2005-01-18 14:36
仕様が求めるなら
です。 continueは「Goto」という文字列を見たくないという精神衛生上の問題をクリアするために存在する、見掛けの良いGotoの一種だと思っています。 メーリングリストで話題になったんですが、Visual Basic 2005からはcontinueがあるそうです。 楽になりますね。 _________________ たつごろー http://www.codeseek.net MCSE MCSD.NET、MCDBA、MCSA、MCAD Oracle Master Platinum 9i、Oracle Master Linux+ [ メッセージ編集済み 編集者: たつごろー 編集日時 2005-01-18 14:38 ] | ||||
|
投稿日時: 2005-01-20 10:33
こんなのはいかがでしょう。
for i as integer=0 to 100 do if (cond) then exit do exit do loop next | ||||
|
投稿日時: 2005-01-20 11:20
却下!
gotoが忌み嫌われるのは、プログラム中の何処へでも制御を移行することが出来るために、コードの可読性が損なわれるから。逆にgotoを使わずに済ませるために、可読性を損なわせるのでは本末転倒。 素直にgotoを使うか、場合によっては関数化するのが良いかと。 _________________ 甕星 <mikahosi@abox9.so-net.ne.jp> http://blogs.msmvp.jp/mikahosi/ | ||||
|
投稿日時: 2005-01-20 12:26
私は、
For i = 0 to X Try If (cond) then Exit Try Finally End Try Next としてます。 これもいまいちかなあ、と思いつつ。 Continueはすごーく欲しいですよね。 VB2005、待ち遠しいです。 | ||||
|
投稿日時: 2005-01-20 14:44
私は、C でも Java でも continue を使わない派 (^-^
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-01-20 15:20
たしかにめったにつかわなければならないような状態にはなりませんしね。 私が最近使ったcontinueは、ほかの人が作ったコードの原型をなるべく留めたまま追加の仕様を実現する必要があったときにつかったもので、もしかしたらC#では初めてつかったかもしれません。 _________________ たつごろー codeseek こみゅぷらす | ||||
|
投稿日時: 2005-01-20 15:45
私も他人のソースの修正でくらいしか使いません。 自分のソースでは、使わなくちゃいけない状況になったことがありませんから。 continue != goto と言えども、私はどうしても許せません...。(^-^;) _________________ じゃんぬ @Home じゃんぬねっと @Blog じゃんぬねっと Blog [ メッセージ編集済み 編集者: じゃんぬねっと 編集日時 2005-03-15 19:56 ] |
1|2|3
次のページへ»