- ベストアンサー
ループの最大に変数の値を入れたい
基本的なことですみません。 10回繰り返し処理するにあたって i=1 Do While i <= 10 繰り返し処理 i=i+1 Loop とすると思います。 この10のところに変数の値を入れたいのですが 単純に i=1 a=10 Do While i <= a とするとエラーとなってしまいます。。。 よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
関連するQ&A
- perl:ループのカウンタ変数の値を保持したい。
While文のループのなかにfor文でループをまわしているスクリプトなのですが、 forの中でカウンタ変数をつくり、ループ回数を計測しております。 またforの中である条件を満たした際に、lastでforを抜け、引き続きWhileのループを継続するという処理をしております。 $i=0; While(○○){ 処理1 for(××){ 処理2 $i++; if($i >=100){ 処理3 last; } } } ここで、一度for文のif文で一度forループを抜け、Whileでループをし、またforループに突入した際に、前回forループでカウントした$iの値を保持したまま、そのつづきから$iのカウンタを動作させたいのですが、$iの値はforループを抜けるとリセットしてしまいます。 このような場合、どうすれば$iの値を保持できますでしょうか。 お詳しい方、宜しくお願い致します。 ※ネストがうまく表現できず、みずらくてスミマセン。
- ベストアンサー
- Perl
- 変数の配列の使い方教えてください。(初心者)
VBで関数を作ってるのですが、 Function kansuu as Long Dim a(50) as Long Do (処理) Loop End Function ↑こんな形になってまして、変数a(0)~a(50)にはそれぞれ値が入ってます。{a(50)まで全部使うとは限りません。} Do文を抜ける条件として、途中に「もしa(0)~a(50)の値が全て"0"ならDo文を抜ける」という処理を入れたいのですが、変数aの"配列要素全て"という文の記述方法が分かりません。どなたか教えてください
- ベストアンサー
- Visual Basic
- Date型の変数に処理をして月を増やしたい
いつもお世話になっております。 色々調べていて、Date型の変数に「+1」をすると、日が増えることがわかりました。 2005/07/06が入っている変数Aに A = A + 1 をすると 2005/07/07 になりますよね。 この2005/07/06が入っているAに何らかの処理をして 次の月である2005/08/06の値を入れたいです。 Do Whileでまわして1月ずつ増やしたいと思っています。 方法をご存知の型がいらっしゃいましたら、教えてください。 よろしくお願いいたします。
- ベストアンサー
- Microsoft ASP
- BShell 動的配列のループ処理について
動的に変数名を作成した配列について、ループ処理を行う場合、どうしたらいいでしょうか 以下のような処理を書いたのですが、駄目でした。 a=0 while [ ${a} -ne 10 ] do eval $(printf TEST%02d $a)=(aaa bbb ccc) #TEST00 - TEST10の配列が作られる。 # TEST00 - TEST10の配列の中身にたいして処理を行いたい。。。 for (( I=0; I < ${#`eval $(printf TEST%02d $a)[@]`}; ++I )) # エラー do // ここで処理したい・・・ done done いいアイディアがありましたらご教授よろしくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- ループの後判断どんな時使うの
====================== Do While 条件式 繰り返し処理 Loop ====================== の構文は良く使うのですが、 ====================== Do 繰り返し処理 Loop While 条件式 ====================== は今まで使ったことがありません。 どんな時に後判断を使うのですか? 具体的な事例がありましたら教えてください。
- ベストアンサー
- Visual Basic
- UserForm自体を変数でループ化したいのですが・・
質問をさせてください。 USERFORMを使い、処理を行っているのですが USERFORM自体を変数とし、それを元にループで 処理をしたいと思っています。 こんな感じで変数を!!→UserForm(t) 例えば下記のような処理を・・ Private Sub UserForm_Activate() Do While t <= 10 And Cells(t, 1) <> "" Select Case t Case 1 To 3 'UserForm1処理 With UserForm1 UserForm1の処理 (リストやテキストボックスにエクセルシートの値を代入させています。) ※こんな感じで。。 .Controls("textbox" & 1) = Cells(t, 1).Value End With Case 4 To 6 'UserForm2処理 With UserForm2 UserForm2の処理 (リストやテキストボックスにエクセルシートの値を代入させています。) ※こんな感じで。。 .Controls("textbox" & 1) = Cells(t, 1).Value End With Case 7 To 10 'UserForm3処理 With UserForm3 UserForm3の処理 (リストやテキストボックスにエクセルシートの値を代入させています。) ※こんな感じで。。 .Controls("textbox" & 1) = Cells(t, 1).Value End With End Select Loop end sub このような処理が一つのUserFormを開くと全てのUserForm間での処理がズラーッとあるわけですが処理内容は 変わりませんのでUserForm自体を変数で対応すれば書式もスッキリしてみやすく もし何かトラブルが生じてもすぐに対応できることから質問をさせていただきました。 よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- 【シェルスクリプト】 ローカル変数、グローバル変数
シェルスクリプトのローカル変数、グローバル変数の取り扱いで迷っています。 ---------------- #!/bin/bash count=0 cat file | while read i do count=`expre $count + 1 ` done echo $count ---------------- fileの中身をcatで流して、それを一行ずつ読み込みます。 そのつど、count の値を増やしていくようにしたいのですが、最後の出力値は0となります。 cat→whileで読み込ませて処理している間はローカル変数として扱われているのでしょうか。 またそうであるならば、シェルスクリプトでグローバル変数を明示的に宣言するにはどうのようにすればいいのでしょうか。
- ベストアンサー
- その他(プログラミング・開発)
- DataTableの値を変数に代入したい
DataTableの値を変数に代入したい 以下のコードのにてDBから『職員ID』・『氏名』を取得しSyokuin(,)の2次元配列に代入したいのですが Do Loopのところで『オブジェクト参照がオブジェクトインスタンスに設定されていません』とエラーが出ます。 ほかのところでほぼ同様のコードでデータグリッドビューに表示はうまくいくんですが? Using OleCn As New OleDbConnection(省略) Using OleCmd As New OleDbCommand(省略) Using OleDAdp As New OleDb.OleDbDataAdapter() OleCmd.Connection = OleCn '配列取得 OleDAdp.SelectCommand = OleCmd OleDAdp.Fill(OleDSet, "職員") Dim i As Integer = 0 Dim jAs Integer = 0 Do Until j= OleDSet.Tables("職員").Columns.Count - 1 Do Until i = OleDSet.Tables("職員").Rows.Count - 1 Syokuin(j, i) = OleDSet.Tables("職員").Rows(i)(j) i += 1 Loop j += 1 Loop End Using End Using End Using ご教授お願いします
- ベストアンサー
- Visual Basic
- 変数をループ内で変更しループ外でも参照したい
変数をループ内で変更しループ外でも参照したい Linuxのシェルを作成している最中にちょっとした壁にぶつかりました。 元々は以下のような感じの処理でした。 (A)------------------ FLAG=false awk "(NR>=2){print}" ${FILE} | while read LINE_STR do if […]; then FLAG=true fi done -------------------- 状況によってFLAGの値を変更し、あとの処理で FLAGの値に応じて異なる処理を行ないます。 で、少し調べたところパイプすると別プロセスになるので云々と あったのでループの前の定義でも中でも「export FLAG」と 書いてみたのですがダメでした。そういうもんじゃないのかと。 元々は、最初の1行は読み飛ばしたいという要望を持っていたので このような記述だったのですが、少し不本意ですが、 読み込むファイルの1行目も処理対象に含めることにした上で 以下のような記述に変更したところ一応動きました。 (B)------------------ while read LINE_STR do FLAG=true done < ${FILE} -------------------- 対処療法として今はこのようなコードにしましたが完全ではありません。 今自分の知識の中で実現可能な方法だと以下のような感じです。 ・フラグファイルを使用する ・1行読み飛ばした一時ファイルを作成しそれを使う ・読み込むファイルの仕様を変更し1行目のヘッダを削除する ・(B)の方法で読み込み、ループ内でカウンタを持ち、最初だけ continueする どれでも一応実現は可能ですが、エレガントではありません。 そこで質問することにしました。 以下のどちらかもしくはそれ以外で私の希望を実現する方法を 教えてください。よろしくお願いします ・パイプを使用したループでループ内で変更した変数の値を取得する方法 ※(シェルの制約で出来ないのであれば、その旨を知りたいです) ・パイプを使用せず、1行読み飛ばす方法 ※そもそも1行読み飛ばす方法で 「awk "(NR>=2){print}" ${FILE}」 と書いていますが、これは妥当でしょうか? よりよい記述があればあわせて教えてください。 よろしくお願いします。
- ベストアンサー
- Linux系OS
- JavaScriptの変数の値が消える!?
原因不明のエラーで悩んでます。 どなたか救いの手を! 環境IE5.0SP2 JavaScriptで300個の変数を使用し、IEの入力画面の値を保持しています。 処理ボタンのタイミンングで、入力チェックで変数の値のチェックを行い、 OKの場合、テーブルに値を書き込む・・・という動作をします。 この、入力チェックの段階で変数に値が全くない場合は、エラーで中断しています。 テーブルに書き込む段階で、変数に値がない場合は、書き込みを行いません。 ◎今回のエラー。 ・入力チェックは通過したけれども、テーブルにはデータが書き込まれていませんでした。 処理はそのまま進んでいって、正常終了したけれどもデータがないという状態になりました。 インサートで失敗した場合、エラーメッセージと共に「デバッグしますか?」という例の画面 がでるはずですが、それも表示されなかったため、インサートの段階で変数から 値が消えてしまっていたのでは・・・と考えているのですが。 入力チェックの時点で入っていた値がすぐ後の、インサートの時点で消えてしまっている、 なんてことはありえるでしょうか? やはり、ただ単にコーディングミスなのかと調べまくっていますが、分かりません。 無線LANを使用しているため、途切れた・・・という可能性とかも あるのでしょうか? 分からないことばかりですみません。よろしくお願いいたします。
- 締切済み
- JavaScript
お礼
目的がFor文でも可能であったため、下記の 方法で対応しました。 cnt=10 For i = 1 To cnt 処理 Next Forの場合は必ず数値と判断してくれるようですね。 いろいろとありがとうございました!