|
■No99571 (yama さん) に返信 > 繰り返しの処理を用いて作りたいです > 答えというよりはヒントが欲しいです。答えでもいいです
作成するにあたり、『何に対して繰り返しを行いたい』でしょうか? そもそも繰り返しを必要とするような処理には見えなかったです。
あえて繰り返すとすれば、選択肢として思い当たるのはこの辺り。 (1) 累乗演算部を、繰り返しの掛け算処理として実装する。 (2) 掛け算処理を、繰り返しの足し算処理として実装する。 (3) 画面からの入力値が、数値として適切かを繰り返し処理で判定する。
--- (1) や (2) で繰り返し処理を使う手法は、 【2】の【0.5】乗は【1.4142135623731】 といった、小数値や負数の場合に実装が複雑になりすぎるので、 あまり良い処理方法ではないですね。 設問が『数値を入れて』ではなく、『0 以上の整数を入れて』とか 『自然数を入れて』といった内容であれば、利用できたのですけれども…。
(3) については、コンソールアプリで Console.ReadLine() の入力を 数値判定するような順次処理に対しては有効です。 Dim num1 As Single, num As Single Do Console.Write("数値1を入れてください:") Loop Until Single.TryParse(Console.ReadLine(), num1) Do Console.Write("数値2を入れてください:") Loop Until Single.TryParse(Console.ReadLine(), num2)
しかし、WinForms などで、TextBox の入力を 数値判定するような場面には向かないですね。
無理矢理、(3) のパターンを Loop ステートメントで実装してみたものがこちら。 普通は If 文を使うところなので、繰り返し処理になっているかと言うと微妙ですが…。
Private Sub TextBoxes_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged, TextBox2.TextChanged Dim a, b As Double Do Until Double.TryParse(TextBox1.Text, a) AndAlso Double.TryParse(TextBox2.Text, b) TextBox3.Text = "" Return Loop TextBox3.Text = (a ^ b).ToString() End Sub
|