While 活動持續執行直到條件為假。本範例實作九九乘法表雙重迴圈。
WhileActivity。
直接巢狀 While 無法處理內層變數重置,解決方案:外層 While 內放入 Sequence(串行)活動,Sequence 內再放入內層 While 與重置程式碼。
private int i = 0;
private int j = 1;
規則條件:this.i <= 9
規則條件:this.j <= this.i
private void codeActivity1_ExecuteCode(object sender, EventArgs e)
{
j = 1;
i++;
}
private void codeActivity2_ExecuteCode(object sender, EventArgs e)
{
if (i == j)
{
Console.Write("{0} * {1}={2} ", i, j, i * j);
Console.WriteLine("");
}
else
Console.Write("{0} * {1}={2} ", i, j, i * j);
j++;
}
private void codeActivity3_ExecuteCode(object sender, EventArgs e)
{
Console.Read();
}
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Collections;
using System.Drawing;
using System.Linq;
using System.Workflow.ComponentModel.Compiler;
using System.Workflow.ComponentModel.Serialization;
using System.Workflow.ComponentModel;
using System.Workflow.ComponentModel.Design;
using System.Workflow.Runtime;
using System.Workflow.Activities;
using System.Workflow.Activities.Rules;
namespace WhileActiviity
{
public sealed partial class Workflow1 : SequentialWorkflowActivity
{
private int i = 0;
private int j = 1;
public Workflow1() { InitializeComponent(); }
private void codeActivity1_ExecuteCode(object sender, EventArgs e)
{
j = 1; i++;
}
private void codeActivity2_ExecuteCode(object sender, EventArgs e)
{
if (i == j)
{
Console.Write("{0} * {1}={2} ", i, j, i * j);
Console.WriteLine("");
}
else
Console.Write("{0} * {1}={2} ", i, j, i * j);
j++;
}
private void codeActivity3_ExecuteCode(object sender, EventArgs e)
{
Console.Read();
}
}
}
https://zhuxianzhong.blog.51cto.com/157061/203304