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

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

新規登録して質問してみよう
ただいま回答率
85.48%
VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

Q&A

解決済

2回答

2330閲覧

ループ処理の関数化

goldenbad

総合スコア8

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

0グッド

0クリップ

投稿2017/04/19 06:14

ループ処理を関数化したいですが、Functionの書き方が思いつきません。

dim result, a, b, I

a = 4

'--------ここから--------------
b= 0
for I = 0 to a
b= b+ 5
next
ret = b
'--------ここまで--------------

WScript.echo "結果:" & result

WScript.Quit

破線の間を関数化して、実現する方法をご教示いただけますでしょうか。

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

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

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

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

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

guest

回答2

0

Functionを考える時、最初に考えるべきは引数を何にするかです。

質問のコード中の該当部分(Functionにする部分(破線の間))の中で引数になる可能性があるのは、
定数: 0,5
変数; a
の3つです。(bは破線の間でしか使われませんから、引数として外部から導入する必要がありません)

初期値の0と、増分の5を変えないとすると

Function teratail1(a) x= 0 for I = 0 to a x= x + 5 next teratail1 = x End Function

のような感じで定義して、破線の間の部分を以下のように関数を使うように変更すれば済みます。

result = taratail1(a)

==
teratail1は決まりきったことしか出来ませんから、用途が非常に限られます。

Function teratail2(initial,addend,times) x= initial for I = 0 to times-1 x= x + addend next teratail1 = x End Function

のように、定数になっている0や5の部分を引数で変えられるようにすれば、用途が広くなります。

==
何のために「関数化したい」のかよって、関数化の仕方も変わってきます。

投稿2017/04/19 07:09

coco_bauer

総合スコア6915

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

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

0

ベストアンサー

VBScript

1dim result, a 2a = 4 3result = FuncLoop(a) 4WScript.echo "結果:" & result 5WScript.Quit 6 7Function FuncLoop(a) 8 Dim b, I 9 b = 0 10 for I = 0 to a 11 b = b + 5 12 next 13 FuncLoop = b 14End Function 15

投稿2017/04/19 06:29

ttyp03

総合スコア16998

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問