値
あたい
に合
あう
プロジェクトとフォームの名前な ま えを『2rac08』として、Visualビ ジ ュ ア ル BasicベーシックでWindowsウ ィ ン ド ウ ズアプリケーションを作成さくせい し、デスクトップに保存ほ ぞ んする。
フォームに、下したの図づのように、ラベル 3個ことテキストボックス 4個ことボタン 1個こを配置は い ちする。
それぞれのコントロールの名前な ま えは、上記じょうきの (Nameネ ー ム): のようにする。ちなみに、Priceプ ラ イ スは値段ね だ ん、Countカ ウ ン トは 個数こ す う、Totalト ー タ ルは合計ごうけい、Buyバ イは買かうと言いう意味い みである。 また、プロパティを設定せっていして、上うえの図ずのように、ラベルには『値段ね だ ん』、『個数こ す う』、『合計ごうけい』、ボタンには『買か う』(かなでも良よい)と表示ひょうじされるようにする。また、フォントや背 景 色はいけいしょくや前 景 色ぜんけいしょくは自由じ ゆ うに設定せっていする。 VB 2005
道場
※ ここ迄までで分わからない事ことがあれば、もう一度い ち ど、最初さいしょから勉 強べんきょうし直なおして下ください。 ラベル Label (Name):lblPrice テキストボックス TextBox (Name):txtPrice ボタン Button (Name):btnBuy テキストボックス TextBox (Name):txtCount ラベル Label (Name):lblCount テキストボックス TextBox (Name):txtMessage今回
こんかい
は、btnCheck と言いう名前な ま えを付つけたButtonボ タ ンオブジェクトをクリックした時ときに、下記か きの事ことを 行おこなうコー ドを書かいてみよう。
なお、以下い かを 行おこなうのに、Totalト ー タ ルと言いう整数型せいすうがたの変数へんすうを宣言せんげんする等などして、にPriceプ ラ イ スとCountカ ウ ン トの 値あたいを掛かけた 値あたい を代 入だいにゅうしてはならない。
1.Moneyマ ネ ーと言いう整数型せいすうがたの変数へんすうに 1000 を代 入だいにゅうする。
2.Priceプ ラ イ スと言いう整数型せいすうがたの変数へんすうに txtPrice と言いうテキストボックスに書かかれた 値あたいを代 入だいにゅうする。
3.Countカ ウ ン トと言いう整数型せいすうがたの変数へんすうに txtCount と言いうテキストボックスに書かかれた 値あたいを代 入だいにゅうする。
4.Priceプ ラ イ スとCountカ ウ ン トの 値あたいを掛かけた 値あたいを txtTotal と言いうテキストボックスに表示ひょうじする。
5.Priceプ ラ イ スとCountカ ウ ン トの 値あたいを掛かけた 値あたいがMoneyマ ネ ーの 値あたいより大おおきければ、txtMessage と言いうテキストボック スに、『お金かねが足たりません』(かなでも良よい)と言いう文字列も じ れ つを赤色あかいろで表示ひょうじする。
6.Priceプ ラ イ スとCountカ ウ ン トの 値あたいを掛かけた 値あたいがMoneyマ ネ ーの 値あたいと同おなじならば、txtMessage と言いうテキストボックス に、『お金かねがなくなりました』(かなでも良よい)と言いう文字列も じ れ つを青色あおいろで表示ひょうじする。
7.Priceプ ラ イ スとCountカ ウ ン トの 値あたいを掛かけた 値あたいがMoneyマ ネ ーの 値あたいの半分はんぶん以下い かならば、txtMessage と言いうテキストボッ クスに、『半分はんぶん以上いじょうは残のこってます』(かなでも良よい)と言いう文字列も じ れ つを緑 色みどりいろで表示ひょうじする。
8.Priceプ ラ イ スとCountカ ウ ン トの 値あたいを掛かけた 値あたいが 100以下い かならば、txtMessage と言いうテキストボックスに、『残のこり は 100以下い かです』(かなでも良よい)と言いう文字列も じ れ つを 紫 色むらさきいろで表示ひょうじする。
9.上うえの条件以外じょうけんいがいなら、txtMessage と言いうテキストボックスに、『合計ごうけいは××円えんです』(かなでも良よい) と言いう文字列も じ れ つを黒色くろいろで表示ひょうじする。ただし、××にはPriceプ ラ イ スとCountカ ウ ン トの 値あたいを掛かけた 値あたいを表示ひょうじする。
前回迄
ぜんかいまで
の 3回かいで学まなんだIf 文イフ ぶんを使つかうと、下したのようなコードになったはずである。
Dim
デ ィ ムMoney
マ ネ ーAs
ア ズInteger
イ ン テ ジ ャ ー= 1000
Dim
デ ィ ムPrice
プ ラ イ スAs
ア ズInteger
イ ン テ ジ ャ ー= Val
ヴァル(txtPrice.Text
テキスト)
Dim
デ ィ ムCount
カ ウ ン トAs
ア ズInteger
イ ン テ ジ ャ ー= Val
ヴァル(txtCount.Text
テキスト)
txtTotal.Text
テキスト= (Price
プ ラ イ ス* Count
カ ウ ン ト).ToString
トゥ ストリング( )
I f
イフ
(Price
プ ラ イ ス* Count
カ ウ ン ト) > Money
マ ネ ーThen
ゼ ンtxtMessage.Text
テキスト=
"お金が足りません"
txtMessage.ForeColor
フ ォ ア カ ラ ー= Color
カ ラ ー.Red
レ ッ ドElseIf
エルス イフ
(Price
プ ラ イ ス* Count
カ ウ ン ト) = Money
マ ネ ーThen
ゼ ンtxtMessage.Text
テキスト=
"お金がなくなりました"
txtMessage.ForeColor
フ ォ ア カ ラ ー= Color
カ ラ ー.Blue
ブ ル ーElseIf
エルス イフ
(Price
プ ラ イ ス* Count
カ ウ ン ト) <= (Money
マ ネ ー/ 2)
Then
ゼ ンtxtMessage.Text
テキスト=
"半分以上は残ってます"
txtMessage.ForeColor
フ ォ ア カ ラ ー= Color
カ ラ ー.Green
グ リ ー ンElseIf
エルス イフ
(Price
プ ラ イ ス* Count
カ ウ ン ト) >= (Money
マ ネ ー- 100)
Then
ゼ ンtxtMessage.Text
テキスト=
"残りは100以下です"
txtMessage.ForeColor
フ ォ ア カ ラ ー= Color
カ ラ ー.Magenta
マ ジ ェ ン タElse
エ ル スtxtMessage.Text
テキスト=
"合計は"
& (Price
プ ラ イ ス* Count
カ ウ ン ト).ToString
トゥ ストリング( ) &
"円です"
txtMessage.ForeColor
フ ォ ア カ ラ ー= Color
カ ラ ー.Black
End
エ ン ド イフI f
※ ここ迄までで分わからない事ことがあれば、前回迄ぜんかいまでの 3回かいで学まなんだIf 文イフ ぶんや、その前まえの『条 件じょうけんと真偽値し ん ぎ ち』 に戻もどり、もう一度い ち ど、ゆっくりあせらず勉 強べんきょうし直なおして下ください。
この条 件 式じょうけんしきは
Money - (Price * Count) <= 100 と書かいても良よいが、左辺さ へ んを (Price * Count)
すでに前回迄ぜんかいまでの 3回かいで学まなんだように、『もしも、★★が、■■なら、〇〇を 行おこない、▲▲なら△△を 行おこない、 いずれでもなければ××を 行おこなう』と言いうように、状 況じょうきょうや条 件じょうけんに応おうじて処理し ょ りを選えらぶ事ことを条件分岐じょうけんぶんきと呼よび、 If 文 イフ ぶん を使つかう。If 文イフ ぶんの書かき方かた(構文こうぶんと言いう)を再確認さいかくにんしよう。
I f
イフ条 件 式
じょうけんしき1 Then
ゼ ン条 件
じょうけん1 が成
なり立
たつ時
とき(条 件 式
じょうけんしき1 がTrue
トゥルーの時
とき)の処理
し ょ りElse
エ ル スI f
イフ条 件 式
じょうけんしき2 Then
ゼ ン条 件
じょうけん2 が成
なり立
たつ時
とき(条 件 式
じょうけんしき2 がTrue
トゥルーの時
とき)の処理
し ょ り…
Else
エ ル スI f
イフ条 件 式
じょうけんしきn Then
ゼ ン条 件
じょうけんn が成
なり立
たつ時
とき(条 件 式
じょうけんしきn がTrue
トゥルーの時
とき)の処理
し ょ りElse
エ ル ス全
すべての 条 件
じょうけんが成
なり立
たたない時
とき(条 件 式
じょうけんしき1~n がFalse
フ ォ ル スの時
とき)の処理
し ょ りEnd
エ ン ドI f
イフ If 文 イフ ぶん は、複雑ふくざつな 条 件じょうけんも、 単 純たんじゅんな 条 件じょうけんも判断はんだんできるが、ElseIfエルス イフにより 条 件じょうけんをいくつも並ならべていくと、 コードが見みずらくなってしまう。また、前まえのコードの (Priceプ ラ イ ス * Countカ ウ ン ト) のような書かき方かたをすると、計算けいさん 回数等 かいすうなど のむだが多おおくなる。 状 況 じょうきょうや条 件じょうけんに応おうじて処理し ょ りを選えらぶには、If 文イフ ぶんの他ほかにも、Selectセ レ ク ト Caseケ ー ス文ぶんがある。このSelectセ レ ク ト Caseケ ー ス文ぶんは、 一
ひと
つの式しきに対たいして、その式しきと比較ひ か くする 値あたいを書かくだけなので、コードが見みみやすくなるが、複雑ふくざつな条 件じょうけんの 判断
はんだん
にはむいていない(しかし、Visualビ ジ ュ ア ル BasicベーシックのSelectセ レ ク ト Caseケ ー ス文ぶんの 値あたいの指定方法し て い ほ う ほ うには色々いろいろな書かき方かたがで き、便利べ ん りである)。
条 件
じょうけん
で処理し ょ りを変かえる(条 件 文じょうけんぶんの結果け っ かのTrueト ゥ ル ーかFalseフ ォ ル スにより条件分岐じょうけんぶんきする)If 文イフ ぶんに対たいして、 値あたいで処理し ょ りを 変かえるのがSelectセ レ ク ト Caseケ ー ス文ぶんであると言いえる。
Selectセ レ ク ト Caseケ ー ス文ぶんは、式しきの結果け っ かと、 値あたいの一致い っ ちするCaseケ ー ス 節せつの処理し ょ りを行うステートメントであり、次つぎのように 書かく。
Select
セ レ ク トCase
ケ ー ス式
しきCase
ケ ー ス値
あたい1
式
しきと 値
あたい1 が一致
い っ ちした時
ときの処理
し ょ りCase
ケ ー ス値
あたい2
式
しきと 値
あたい2 が一致
い っ ちした時
ときの処理
し ょ り…
Case
ケ ー ス値
あたいn
式
しきと 値
あたいn が一致
い っ ちした時
ときの処理
し ょ りCase
ケ ー スElse
エ ル ス式
しきと 値
あたい1~n のいずれも一致
い っ ちしなかった時
ときの処理
し ょ りEnd
エ ン ドSelect
セ レ ク ト If 文 イフ ぶん の条 件じょうけんの調しらべ方かたと同おなじく、その 値あたいを上うえから 順じゅんに調しらべていき、式しきの結果け っ かと一致い っ ちすると、そのCase 節ケ ー ス せ つ の処理し ょ りを 行おこなった後あと、ステートメントを抜ぬけて、Endエ ン ド Selectセ レ ク トの次つぎの処理し ょ りへ進すすむ。 式 しき には、その結果け っ かが、数値型す う ち が たや文字列型も じ れ つ が たのような基本的き ほ ん て きなデータ型がたになるような式しきを書かく。 今 いま、色々いろいろな 値あたいと比くらべる式しきは、(Priceプ ラ イ ス * Countカ ウ ン ト) なので、Selectセ レ ク ト Caseケ ー ス文ぶんの最初さいしょの 行ぎょうは、次つぎのように書かく。
Select
セ レ ク トCase
ケ ー ス(Price
プ ラ イ ス* Count
カ ウ ン ト)
値 あたい には、式しきに一致い っ ちする 値あたいを書かき、次つぎの書かき方かたがある。 1.式しきに一致い っ ちする 値あたいを指定し て いする( 値あたいはカンマで区切く ぎりいくつでも指定し て いできる) 2.式しきに一致い っ ちする 値あたいの範囲は ん いを指定し て いする(範囲指定子は ん い し て い し Toト ゥ を使用し よ うする) 3.式しきと比較ひ か くする 値あたいを指定し て いする(比較演算子ひ か く え ん ざ ん し =、<>、<、<=、>、>= を使用し よ うする)
設問
せつもん
5の『Priceプ ラ イ スとCountカ ウ ン トの 値あたいを掛かけた 値あたいがMoneyマ ネ ーの 値あたいより大おおきければ』と言いうのは、式しきと 値あたいを比較ひ か く するので、上うえの3に当あたるので、次つぎのように書かく(Case 節ケ ー ス せ つの処理し ょ りはIf 文イフ ぶんの時ときと同おなじ)。
Case
ケ ー スIs
イズ> Money
マ ネ ー ※ なお、上うえのコードのIsイズは、エディタが 補おぎなってくれるので、書かかなくても良よい。 設問 せつもん6の『Priceプ ラ イ スとCountカ ウ ン トの 値あたいを掛かけた 値あたいがMoneyマ ネ ーの 値あたいと同おなじならば』と言いうのは、式しきに一致い っ ちする 値あたい を指定し て いするので、上うえの 1 に当あたるので、次つぎのように書かく(Case 節ケ ー ス せ つの処理し ょ りはIf 文イフ ぶんの時ときと同おなじ)。
Case
ケ ー スMoney
マ ネ ー ※ なお、Caseケ ー ス Isイズ = Moneyマ ネ ーと書かいても良よいが、通 常つうじょうは書かかない。 設問 せつもん7の『Priceプ ラ イ スとCountカ ウ ン トの 値あたいを掛かけた 値あたいがMoneyマ ネ ーの 値あたいの半分はんぶん以下い かならば』と言いうのは、これも、式しきと 値 あたい を比較ひ か くするので、上うえの3に当あたるので、次つぎのように書かく(Case 節ケ ー ス せ つの処理し ょ りはIf 文イフ ぶんの時ときと同おなじ)。
Case
ケ ー スIs
イズ<= (Money
マ ネ ー/ 2)
※ このように、 値あたいに式しきを書かく事こともできる。 設問 せつもん 8の『Priceプ ラ イ スとCountカ ウ ン トの 値あたいを掛かけた 値あたいが 100以下い かならば』と言いうのは、これも、式しきと 値あたいを比較ひ か くす るので、上うえの3に当あたるので、同おなじように書かけば良よいが、通 常つうじょう、この条 件 式じょうけんしきは、次つぎのように書かくと思おもう。Money
マ ネ ー- (Price
プ ラ イ ス* Count
カ ウ ン ト) <= 100
しかし、Selectセ レ ク ト Caseケ ー ス文ぶんの最初さいしょの 行ぎょうの式しきと合あわせるために、式しきを変形へんけいしている。すなわち、Moneyマ ネ ーを右辺う へ ん に移項い こ うし、両 辺りょうへんに-1 を掛けている。そのため、不等号ふ と う ご うは反転はんてんする事ことになる。小 学 校しょうがっこうで習ならう不等号ふ と う ご うが役やく に立たち、この部分ぶ ぶ んは、次つぎのように書かく(Case 節ケ ー ス せ つの処理し ょ りはIf 文イフ ぶんの時ときと同おなじ)。
Case
ケ ー スIs
イズ>= (Money
マ ネ ー- 100)
今回 こんかい の設問せつもんには出でて来こなかったが、書かき方かたの2の式しきに一致い っ ちする 値あたいの範囲は ん いを指定し て いするには、たとえば、 Priceプ ラ イ スとCountカ ウ ン トの 値あたいを掛かけた 値あたいが 100以上いじょう200未満み ま んなら、次つぎのように書かく。