C言語での continue 相当の動作をするためには – プログラミング – Home

C言語での continue 相当の動...
 
通知
すべてクリア

C言語での continue 相当の動作をするためには


ん
 ん
(@ん)
ゲスト
結合: 23年前
投稿: 106
Topic starter  

ずっとC、C++で開発を行っていたのですが、
VBでの開発を最近はじめたものです。

C/C++では以下の記述でループ内でループの先頭に
処理を戻すことが出来ます。

int i ;
int a[10] ;
int b[10] ;

for( i=0; i<10; i++ )
{
if( a[i]==0 )
{
continue ; // aが0の場合は iをカウントアップしてfor文の最初から処理を行う
}

if( b[i]==0 )
{
continue ; // aが0の場合は iをカウントアップしてfor文の最初から処理を行う
}

// 主処理



}

こういった事をVBで同じように行う記述方法というのは存在するのでしょうか?
現状は以下の様に記述していますが、主処理を行う前のチェック内容の数が増えた場合、
インデントが深くなってしまいます。

Dim intA As Integer
Dim intDataA(10) As Integer
Dim intDataB(10) As Integer

For intA = 1 To 10 Step 1
If intDataA(intA) <> 0 Then
If intDataB(intA) <> 0 Then
'主処理



End If
End If
Next

個人的にはインデントの深いプログラムは見づらいと思っているので
良い案があれば知りたいと思っています。
無ければ無いで仕方ないのですが。

以上、よろしくお願いいたします。


引用解決済
トピックタグ
Mika
 Mika
(@Mika)
ゲスト
結合: 21年前
投稿: 1
 

んさん、こんにちは。
これではダメですか?

Dim intA As Integer
Dim intDataA(10) As Integer
Dim intDataB(10) As Integer

For intA = 1 To 10
If intDataA(intA) <> 0 And intDataB(intA) <> 0 Then
'主処理
End If
Next

ちなみにStep 1は省略できますよ。(^_^)


返信引用
t2
 t2
(@t2)
ゲスト
結合: 22年前
投稿: 16
 

少し邪道だけど・・・

Dim intA As Integer
Dim intDataA(10) As Integer
Dim intDataB(10) As Integer

For intA = 1 To 10
Do
If intDataA(intA) = 0 Then
Exit Do
End If
If intDataB(intA) = 0 Then
Exit Do
End If

'主処理
While False
Next

continueっぽく使えます。


返信引用
ん
 ん
(@ん)
ゲスト
結合: 23年前
投稿: 106
Topic starter  

Mika 様、t2 様回答ありがとうございます。

<Mika 様回答より>
> For intA = 1 To 10
> If intDataA(intA) <> 0 And intDataB(intA) <> 0 Then
> '主処理
> End If
> Next

<t2 様回答より>
> For intA = 1 To 10
> Do
> If intDataA(intA) = 0 Then
> Exit Do
> End If
> If intDataB(intA) = 0 Then
> Exit Do
> End If
>
> '主処理
> While False
> Next

If 文に複数設定できるんですね。
VB初心者なもので、そこまで頭がまわりませんでした。
ただ、条件が多くなった場合や条件の増減があった場合に
動作確認済みの処理(If文)に手を入れなければならないので
t2 様に教えていただいた手法を使用させていただきたいと思います。

>ちなみにStep 1は省略できますよ。(^_^)

何となく全ての For 文に記述していました。

> 少し邪道だけど・・・

邪道大好きです。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました