ビジュアルベーシックのプログラミングについて質問があります。
Dim j, answer As Short
answer = 1
For j = 2 To 4
answer = answer * j
Next
Label1.Text = Str(j)
Label2.Text = Str(answer)
この文を実行してみたところ、ラベル1に5、ラベル2に24という値が出てきました。この際、jというのはどういった働きをしている変数ですか?また、answer = answer * jという式はどうやって計算したら24なんていう数値が出てくるのでしょうか。answer = 1とされているのによくわかりません。馬鹿でほんとすいません。教えてくださる方、お願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
jはいわゆるカウンタです。
For文でj=2から4まで繰り返します。
1回目のループ、j=2
answerは元々1
answer = answer * j
の計算で、= 1*2 = 2が代入されます。
2回目のループ、j=3
answerは2になっている
answer = answer * j
の計算で、= 2*3 = 6が代入されます。
3回目のループ、j=4
answerは6になっている
answer = answer * j
の計算で、= 6*4 = 24が代入されます。
3回目のループ終了時のNextでjは5に更新されます。
No.3
- 回答日時:
まず、算数数学とは = の意味が違うことに気をつけましょう。
If a=b Then
〜
で使われてるのは、数学と同じ「両辺が等しい」の意味です。
※ ただし、コンピュータ用語での「等しい」には、違う解釈があるので注意は必要です。
answer = answer * j
のような使われかたのときは、 「右辺の内容で、左辺の内容を置き換える」という意味になります。
answer ← answer * j
と書いた方がイメージできるかもしれません。
また、左右の answer ではそれぞれ意味が違います。
右のanswer は、その時点で 変数answerが記憶している値を意味し、
左のanswer は、右辺の結果を記憶するための場所、変数answer自体を意味します。
メモ用紙の左上に「 answer 」と書いて、真ん中に 1 と書きます。
その後、そのメモに書いてある数値1 と メモjに書いてある2 を掛けた 2 を、メモanswer に消しゴムで消した後で書き込みます。
次に、メモanswerに書いてある数値2 と メモjに書いてある3 を掛けた 6 を、メモanswer に消しゴムで消した後で書き込みます。
....
という動きです。
御自身がコンピュータになったつもりで、紙と鉛筆でやってみてはいかがでしょう?
For文は、解説書を読むと、どんな動作するかがわかります。
ですが、入門書にはあまり明記されていないことがあります。
Forループ終了時、 jは終了値+増減分となっています。(ループ途中でジャンプしない場合)
というか、Jが終了値を越えてしまったので、ループが終了になった、ということになります。
今回のループの終了値は 4 、増減は+1(Stepを省略したときのデフォルト)ですから、
ループ終了時は 4+1=5になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- 英語 【 論・表 英訳 】 問題 次の文を英訳せよ。 クラスの誰もその質問に答えられませんでした。 解答 4 2022/07/25 21:43
- TOEFL・TOEIC・英語検定 和訳、文法説明 1 2022/09/25 14:11
- 英語 正しい英文を教えてください。 2 2023/06/08 04:02
- 英語 英訳お願いします 進級試験に合格しました。 I passed the test for promot 4 2023/02/22 23:24
- 英語 以下の英文の訳を教えて頂きたいです! The professor refused to answer 4 2023/01/16 13:40
- 日本語 こんばんは。 Is there a way in japanese to say "I couldn 2 2022/05/12 20:05
- TOEFL・TOEIC・英語検定 この give は「~を述べる」の意味ですか 2 2022/05/16 10:20
- YouTube YouTubeの動画差し替えについて 1 2023/02/26 23:04
- 英語 英語文法の複合関係詞ついて質問です 2 2023/04/06 19:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミングについて。 1つ...
-
エクセルの当番表を作っていま...
-
ネットワークループとルーティ...
-
どなたかこのプログラミングを...
-
VBA for i=1 to lastrow
-
画面を強制的に再描画させる方法
-
【VBA】指定の範囲から特定の文...
-
while(*s++=*t++)の判定は?
-
イベントの発生を待つ
-
Escキーを押すと、中断する時と...
-
GIFアニメをループさせたくない
-
UWSCの終了の仕方
-
「VC++6」ウィンドウの再描画
-
Java 南京錠
-
EXCEL VBA(初心者)印刷ルー...
-
磁気ループ装置の仕組みと作り方
-
VBA Dir関数でファイルをループ...
-
重複データをテーブルに表示し...
-
一巡伝達関数と開ループ伝達関数
-
CreateJS(TweenJS)での連続した...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
VBAで3秒だけ時間を止めたい
-
VBAでの一時停止と再開の方法
-
どなたかこのプログラミングを...
-
Escキーを押すと、中断する時と...
-
UWSCの終了の仕方
-
エクセルの当番表を作っていま...
-
VBA for i=1 to lastrow
-
「偶数・奇数の和」のフローチ...
-
アクティブセルから、A列最終行...
-
DoEventsが必要な理由について
-
vb.netからエクセル関数書き込み
-
GIFアニメをループさせたくない
-
DOSコマンドのループ内のTIMEコ...
-
範囲指定したセルを1つずつ飛...
-
流れ図(フローチャート)が分か...
-
乱数の桁数指定、または範囲指定。
-
テキストボックスの名前に変数...
-
CSVファイルの特定の行だけを読...
-
vb.netです。2次元配列の要素を...
おすすめ情報