ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年3月29日(金) 16:49

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 8 件の記事 ] 
作成者 メッセージ
 記事の件名: Else Ifの仕様
投稿記事Posted: 2006年1月30日(月) 13:34 
オフライン

登録日時: 2005年5月31日(火) 22:17
記事: 27
お住まい: 山口
よくIf分の使用がわかっていないので間違っているかどうかわからないのですが、ちょっと混乱しているので書きます。
コード:
Else If
というのはいったいどういう意味なのでしょうか?

_________________
今日も元気にABLife


通報する
ページトップ
 記事の件名: Re: Else Ifの仕様
投稿記事Posted: 2006年1月30日(月) 17:48 
オフライン

登録日時: 2005年7月19日(火) 07:02
記事: 183
お住まい: 宮城県
引用:
>
コード:
> Else If
> 
> というのはいったいどういう意味なのでしょうか?
ElseIf が正しい書き方のようです。
Else If が一つ目だけ通るのは、たまたまだと思われます。

参考。
http://www.discoversoft.net/help_center ... and/If.htm


通報する
ページトップ
 記事の件名: Re: Else Ifの仕様
投稿記事Posted: 2006年1月31日(火) 10:11 
オフライン

登録日時: 2005年5月31日(火) 22:17
記事: 27
お住まい: 山口
> ElseIf が正しい書き方のようです。
> Else If が一つ目だけ通るのは、たまたまだと思われます。

Else If
がたまたま通っていいんでしょうかね~?
ElseIfのつもりで使ってましたから。
もうひとつElse Ifをつけると、とおらなくなってしまい
「どこがおかしいんだー」と悩みデバックに時間がかかってしまいました。

_________________
今日も元気にABLife


通報する
ページトップ
投稿記事Posted: 2006年1月31日(火) 11:02 
オフライン

登録日時: 2005年7月19日(火) 07:02
記事: 183
お住まい: 宮城県
良くはないと思います。
本来なら「構文エラー」として弾くべきか、
そうでなけば複数のElse Ifにも対応すべきだとは思います。
ただ、C/C++でもelseifの記述ですし、ABもElseIfとしてヘルプファイルに
載ってますから…たまたま通る仕様なのだろうとあまり気にしてませんでした^^;
(他にも、End Ifとヘルプに載ってますがEndIfでも通るなどありますし。私は後者の記述が好きなので助かってます。)

でも、確かに引っかかるポイントではありますね。気づきにくいエラーです。


山本様へ。
If文の複数回ネストの際のElse If/ElseIfの両方への構文対応、
もしくは構文エラー表示の対応を、可能でしたらお願いいたします。


通報する
ページトップ
 記事の件名: Else IFの仕様
投稿記事Posted: 2006年2月10日(金) 10:41 
オフライン

登録日時: 2005年12月06日(火) 15:53
記事: 9
こんにちは。こうきです。

二番目の間違いの文で4行目のEnd Ifをとると通るみたいなんですがこれはどういうことでしょうか?
余計わからなくなってしまいそうですが解決の参考になればと思います。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2006年2月10日(金) 13:39 
If ~ Then ~ という1行構文ができます
この場合、End Ifは必要ないことになっています。
書かれているソースは、1行構文として解釈されるものがあります

コード:
'正しい
If FALSE Then
Else If FALSE Then
End If

'↓
If FALSE Then
	Else If FALSE Then ~	'Elseの1行構文
End If



'間違い
If FALSE Then
Else If FALSE Then
Else If TRUE Then
Endif

'↓
If FALSE Then	'1行構文ではない(次にElseがあるので)
Else		'スペースがあるので分離
	If FALSE Then	'1行構文ではない(次にElseがあるので)
		Else If TRUE Then ~	'1行構文
	Endif
'!!!End Ifが足りない!!!



'間違い
If FALSE Then
Else If FALSE Then
    Else If TURE Then
        End If
    End If
End If

'↓
If FALSE Then	'1行構文ではない(次にElseがあるので)
Else		'スペースがあるので分離
	If FALSE Then	'1行構文ではない(次にElseがあるので)
	Else		'スペースがあるので分離
		If TURE Then ~	'1行構文
	End If
End If
End If	'!!!End Ifがあまる!!!


通報する
ページトップ
   
 記事の件名:
投稿記事Posted: 2006年2月10日(金) 13:45 
すみません。ちょっとインデントが変だったので直しました
こっちのほうがわかりやすいと思います

コード:
'正しい
If FALSE Then
Else If FALSE Then
End If

'↓
If FALSE Then
Else If FALSE Then ~	'ElseとIfの1行構文
End If



'間違い
If FALSE Then
Else If FALSE Then
Else If TRUE Then
Endif

'↓
If FALSE Then	'1行構文ではない(次にElseがあるので)
Else		'1行構文ではないので分離
	If FALSE Then	'1行構文ではない(次にElseがあるので)
	Else If TRUE Then ~	'ElseとIfの1行構文
	Endif
'!!!End Ifが足りない!!!



'間違い
If FALSE Then
Else If FALSE Then
    Else If TURE Then
        End If
    End If
End If

'↓
If FALSE Then	'1行構文ではない(次にElseがあるので)
Else		'1行構文ではないので分離
	If FALSE Then	'1行構文ではない(次にElseがあるので)
	Else		'1行構文ではないので分離
		If TURE Then ~	'1行構文
	End If
End If
End If	'!!!End Ifがあまる!!!


通報する
ページトップ
   
 記事の件名:
投稿記事Posted: 2006年2月13日(月) 02:24 
オフライン
Site Admin

登録日時: 2005年5月30日(月) 15:08
記事: 535
引用:
本来なら「構文エラー」として弾くべきか、
そうでなけば複数のElse Ifにも対応すべきだとは思います。
そうですね。現状の"Else If"は構文エラーとしてはじかれず、わかり辛いバグとなって現れる傾向が強いようです。

次回のバージョンアップでは、"Else If" を有効にしますので、ご了承ください。


通報する
ページトップ
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 8 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[18人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean