- PR -

VBでcontinueの代わりって…

投稿者投稿内容
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 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
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2005-01-18 14:36
仕様が求めるなら
引用:

Goto文を使う


です。
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 ]
えるにえ
会議室デビュー日: 2001/09/21
投稿数: 10
投稿日時: 2005-01-20 10:33
こんなのはいかがでしょう。
for i as integer=0 to 100
do

if (cond) then exit do

exit do
loop
next
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-01-20 11:20
却下!
gotoが忌み嫌われるのは、プログラム中の何処へでも制御を移行することが出来るために、コードの可読性が損なわれるから。逆にgotoを使わずに済ませるために、可読性を損なわせるのでは本末転倒。

素直にgotoを使うか、場合によっては関数化するのが良いかと。
_________________
甕星 <mikahosi@abox9.so-net.ne.jp>
http://blogs.msmvp.jp/mikahosi/
桜緋女
常連さん
会議室デビュー日: 2004/09/15
投稿数: 46
投稿日時: 2005-01-20 12:26
私は、
For i = 0 to X
Try
If (cond) then Exit Try
Finally
End Try
Next
としてます。

これもいまいちかなあ、と思いつつ。
Continueはすごーく欲しいですよね。
VB2005、待ち遠しいです。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-01-20 14:44
私は、C でも Java でも continue を使わない派 (^-^
_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2005-01-20 15:20
引用:

じゃんぬねっとさんの書き込み (2005-01-20 14:44) より:
私は、C でも Java でも continue を使わない派 (^-^



たしかにめったにつかわなければならないような状態にはなりませんしね。
私が最近使ったcontinueは、ほかの人が作ったコードの原型をなるべく留めたまま追加の仕様を実現する必要があったときにつかったもので、もしかしたらC#では初めてつかったかもしれません。

_________________
たつごろー
codeseek
こみゅぷらす
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-01-20 15:45
引用:

ほかの人が作ったコードの原型をなるべく留めたまま追加の仕様を実現する必要があったときにつかったもので



私も他人のソースの修正でくらいしか使いません。
自分のソースでは、使わなくちゃいけない状況になったことがありませんから。
continue != goto と言えども、私はどうしても許せません...。(^-^;)

_________________
じゃんぬ
  @Home  じゃんぬねっと
  @Blog   じゃんぬねっと Blog

[ メッセージ編集済み 編集者: じゃんぬねっと 編集日時 2005-03-15 19:56 ]

スキルアップ/キャリアアップ(JOB@IT)