質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Small Basic

Small Basicとは、Microsoft社が開発している初めてプログラミングに触れる人に向けた簡単なプログラミング言語です。

Q&A

解決済

2回答

721閲覧

small basicの繰り返し処理の終了判定が分からないです。

SXS

総合スコア9

Small Basic

Small Basicとは、Microsoft社が開発している初めてプログラミングに触れる人に向けた簡単なプログラミング言語です。

0グッド

0クリップ

投稿2017/11/11 16:04

small basicを用いて乱数を使った数を当てるものを作りたいと考えております
条件は次の通りです
・乱数を生成
・5回まで入力可能とすること
・もし、入力した数字よりも大きい場合、「もっと大きい数字です」と出力
・もし、入力した数字よりも小さい場合、「もっと小さい数字です」と出力
・数字を当てた場合、「xx回目で当てました!」と表示し、終了
・5回外した場合、「残念でした」と出力して終了

大体は問題なく動くのですが、数を当てた際の
繰り返しの終了判定がうまくいかないのですがどのようにしたらよいでしょうか?

※エラー自体はでておりません。

プログラムのID → RNP895

TextWindow.WriteLine("入力してください > ") num = TextWindow.ReadNumber() If num > rnd Then If i < 5 Then TextWindow.WriteLine("もっと大きい数字です" ) Else TextWindow.Write("残念です") EndIf EndIf If num < rnd Then If i < 5 Then TextWindow.WriteLine("もっと小さい数字です" ) Else TextWindow.Write("残念です") EndIf EndIf If num = rnd Then TextWindow.WriteLine(i + "回目で成功") EndIf EndFor

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

原因が分かりました!

新たに変数kを準備して、For文内で5回、1を足していき、numと乱数が一致した時点で足していったkの値を
EndForの下に書いてあるif文(成功)で受け取る形です

k = 0 For i = 1 To 5 If num <> rnd Then TextWindow.Write("数字を入力して下さい > ") num = TextWindow.ReadNumber() k = k + 1 Else EndIf
If num = rnd Then TextWindow.WriteLine(k + "回目で当てました!") EndIf

投稿2017/11/12 04:14

SXS

総合スコア9

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

終了判定がうまくいかない

判定がうまくいかないときは、
対応するIF文をチェックしましょう。
なにしろIF文で判定するわけですから。


・数字を当てた場合、「xx回目で当てました!」と表示し、終了

If num = rnd Then TextWindow.WriteLine(i + "回目で成功")

ですから、この部分が該当します。
まず、問題が起きている部分の
仕様条件と対応するコードを探しましょう。

後は、終了処理がそもそも書いてないので、
終了処理を書けば良いです。


EndFor

ところで、EndForに対応するForがないですけど、
掲載分のコードだけで正しく繰り返せてますかね?

投稿2017/11/11 17:07

LLman

総合スコア5592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SXS

2017/11/12 04:13

ありがとうございました。Forは書き忘れれていました。 変数を新たに追加することでFor文を抜けた際に値を引っ張っていけました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問