![]() ![]() ![]() |

スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | トピック |
---|---|
tkouno | 投稿日時: 2009-10-8 11:16 |
EA Administrator ![]() ![]() 投稿: 3919 |
loopのフラグメントでfor文を出すには○ご質問
シーケンス図のloopのフラグメントからは、現在は while文のみが出力されるようになっているようです。 for文を出力する方法はありますか? ○回答 現時点では、ご指摘のようにwhile以外を生成することはできません。 テンプレートの内容を、以下のようにカスタマイズする必要があります。 for文については、例えばAction Loopテンプレートの19行目からの7行を 以下のように変更することで、for文で出すことも可能となります。 %if $lower != ""% for ($lower; $upper; ;)\n %elseIf $expression != ""% while ($expression)\n %else% while (true)\n %endIf% そして、対象のloopフラグメントに「状態」として 「(i=2,i<3)」のような内容を追加して下さい。 (名前として追加するのではありません。) この2つの値がLowerとUpperになります。 |
tkouno | 投稿日時: 2009-10-14 15:13 |
EA Administrator ![]() ![]() 投稿: 3919 |
Re: loopのフラグメントでfor文を出すには補足として、for文の第3引数を追加したい場合には
タグ付き値に情報を格納し、その情報を コード生成テンプレートから参照する形になります。 例えば、シーケンス図のLoopフラグメントにタグ付き値「adder」を 値「i++」で定義しておきます。 そして、Action Loopテンプレートの$lowerに対する操作の下で $adder = %EASL_GET("Property", $GUID, "GetTaggedValue","adder")% のようにしてタグ付き値の値を取得し、 for ($lower; $upper; $adder;)\n のように、値を利用します。 (タグ付き値が設定されていない場合には、既定のテンプレートと 同じ結果になります。) |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |