「ステップ2 「If文、For文、その他のプログラム制御命令」」の編集履歴(バックアップ)一覧はこちら

ステップ2 「If文、For文、その他のプログラム制御命令」」(2010/08/09 (月) 21:31:50) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

**If文 (動作は問題ないがクイズに問題がある。 1問目の答えがダートマス大学が正解なのに2問目はベル研が不正解。これはおかしい。) 今回は、プログラムの流れを変える命令を紹介しまっせ。ここまでは上から下に向かってプログラムが流れとったんやが、ここでは、If文、For文をはじめとする機能を利用してプログラムの流れを制御していきまんねん。 まずはIf文の構造を見てみまひょ。 If 条件式 Then 条件が真の場合に実行するプログラム Else 条件が偽の場合に実行するプログラム End If この構造を見ていただければ、あまり込み入った解説はいりまへんなぁ。これや以外にも、If文の書き方は色々あるんやが、ここでは省略しておきまっせ〜(ねちっこくはヘルプファイルをご覧おくんなはれ)。 試しに、○ペケクイズを出題するプログラムを作ってみまひょ(管理人のセンスが問われる微けったいな内容やけど…)。 Dim UserMsg As Long Dim q1 As String Dim q2 As String Dim Answer As String q1="初代BASIC言語はハーバード大学で作られた。○(はい)か×(いいえ)か?" q2="初代C言語はベル研究所で作られた。○(はい)か×(いいえ)か?" UserMsg=MessageBox(0,q1,"問題1",MB_YESNO) If UserMsg=IDYES Then Answer="ハズレ。" Else Answer="アタリ。" End If Answer=Answer+"ダートマス大学が正解です。" MessageBox(0,Answer,"解答1",MB_OK) UserMsg=MessageBox(0,q2,"問題2",MB_YESNO) If UserMsg=IDYES Then Answer="ハズレ。" Else Answer="アタリ。" End If MessageBox(0,Answer,"解答2",MB_OK) **For文 (コンパイル→Avira AntiVirが反応…) ある計算を、任意の回数だけ繰り返して行うのがFor文の役目や。 For カウンタ変数=初期値 To 終値 [Step 増分] ループ内部のプログラム... Next "Step 増分" を省略すると、増分に1がセットされまんねん。試しに、For文を利用して1+2+3+...+10の計算を行ってみまんねん。 Dim i As Long Dim sum As Long Dim buffer As String For i=1 To 10 sum=sum+i Next buffer="1+2+3+...+10=" + Str$(sum) MessageBox(0,buffer,"For文のテスト",MB_OK) このプログラムでは、"sum=sum+1" ちう演算が10回行われることになるんですわ。変数iの値が10を超えると(11になると)ループを抜け出す仕組みになっとりまんねん。
**If文 (%%動作は問題ないがクイズに問題がある。%% %%1問目の答えがダートマス大学が正解なのに2問目はベル研が不正解。これはおかしい%% 直した。) 今回は、プログラムの流れを変える命令を紹介しまっせ。ここまでは上から下に向かってプログラムが流れとったんやが、ここでは、If文、For文をはじめとする機能を利用してプログラムの流れを制御していきまんねん。 まずはIf文の構造を見てみまひょ。 If 条件式 Then 条件が真の場合に実行するプログラム Else 条件が偽の場合に実行するプログラム End If この構造を見ていただければ、あまり込み入った解説はいりまへんなぁ。これや以外にも、If文の書き方は色々あるんやが、ここでは省略しておきまっせ〜(ねちっこくはヘルプファイルをご覧おくんなはれ)。 試しに、○ペケクイズを出題するプログラムを作ってみまひょ(管理人のセンスが問われる微けったいな内容やけど…)。 Dim UserMsg As Long Dim q1 As String Dim q2 As String Dim Answer As String q1="初代BASIC言語はハーバード大学で作られた。○(はい)か×(いいえ)か?" q2="初代C言語はベル研究所で作られた。○(はい)か×(いいえ)か?" UserMsg=MessageBox(0,q1,"問題1",MB_YESNO) If UserMsg=IDYES Then Answer="ハズレ。" Else Answer="アタリ。" End If Answer=Answer+"ダートマス大学が正解です。" MessageBox(0,Answer,"解答1",MB_OK) UserMsg=MessageBox(0,q2,"問題2",MB_YESNO) If UserMsg=IDYES Then Answer="アタリ。" Else Answer="ハズレ。" End If MessageBox(0,Answer,"解答2",MB_OK) **For文 (コンパイル→Avira AntiVirが反応…) ある計算を、任意の回数だけ繰り返して行うのがFor文の役目や。 For カウンタ変数=初期値 To 終値 [Step 増分] ループ内部のプログラム... Next "Step 増分" を省略すると、増分に1がセットされまんねん。試しに、For文を利用して1+2+3+...+10の計算を行ってみまんねん。 Dim i As Long Dim sum As Long Dim buffer As String For i=1 To 10 sum=sum+i Next buffer="1+2+3+...+10=" + Str$(sum) MessageBox(0,buffer,"For文のテスト",MB_OK) このプログラムでは、"sum=sum+1" ちう演算が10回行われることになるんですわ。変数iの値が10を超えると(11になると)ループを抜け出す仕組みになっとりまんねん。

表示オプション

横に並べて表示:
変化行の前後のみ表示: