遊んでみる その5
- 入力ボックスから割る数、割られる数を設定
- 除算結果をメッセージボックスで表示
- ゼロ除算が発生した場合、エラー処理
共通変数定義(メイン)
変数名 |
データ型 |
備考 |
num_1 |
文字列型 |
割られる数 |
num_2 |
文字列型 |
割る数 |
シナリオの流れ(メイン)
1. 登録用のデータテ-ブルを構築
- COM名:入力ボックス
- ボタンやリストを使って入力を制限しているが、省略
- 関数が使えず、一度文字列型の変数に格納しなければいけない模様
プロパティ名 |
設定値 |
メッセージ |
"割られる数を入力" |
入力文字 |
num_1 |
プロパティ名 |
設定値 |
メッセージ |
"割る数を入力" |
入力文字 |
num_2 |
プロパティ名 |
設定値 |
サブシナリオ |
(以下のサブシナリオを指定) |
- 値の引き渡し
- サブシナリオの変数は小数型だが、decimalValue関数で渡せる模様
| サブシナリオの変数 | 値の引き渡し |
|:-:|:-:|:-:|
| num_1 | num_1.decimalValue() |
| num_2 | num_2.decimalValue() |
共通変数定義(サブ)
変数名 |
データ型 |
備考 |
num_1 |
小数型 |
割られる数 |
num_2 |
小数型 |
割る数 |
result |
小数型 |
除算結果 |
シナリオの流れ(サブ)
2. 除算結果をメッセージボックスで表示
プロパティ名 |
設定値 |
例外処理 |
A20005008:演算処理 - ゼロ除算 |
プロパティ名 |
設定値 |
置き換え対象変数 |
result |
置き換え値 |
(num_1 / num_2) |
プロパティ名 |
設定値 |
メッセージ |
"答えは " + result.toString() + " です。" |
3. ゼロ除算が発生した場合、エラー処理
プロパティ名 |
設定値 |
メッセージ |
"割る数に0を指定しないでください。" |
雑感
- (整数型変数÷整数型変数)の除算結果を、小数型変数に格納することができない。
- データ型を一致させなければいけない、小数に変換する関数も見当たらない?
- 整数÷整数 → 整数型の変数に格納
- 小数÷小数 → 小数型の変数に格納
- 除算結果が無限小数になる場合、エラーが発生する。
- trunc関数を使って桁数を切り落としても回避不可?
- サブシナリオの呼び出し、例外処理は分かりやすく作られている印象がある。
- 例外処理は、U○PathのTry-Catchよりとっつきやすい印象がある。
- 但し、Finallyがないなどやれることはもちろん限られる。