多數人在用 Power Automate 或 UiPath 時,不是先學邏輯,而是先拖積木。結果流程到某一步卡住,卻不知道為什麼。
在每個程式語言中,都會有條件和迴圈的語法,在搭建自己的流程時必須要有條件和迴圈的概念。
在下面的說明中也會搭配流程圖示,流程圖是開發人員很常見的圖示,常在釐清需求時畫出流程圖,方便團隊討論及確認流程正確性,確定後以此流程為主去做流程開發可以更有效率。我自己也蠻習慣在開發前畫出流程圖先想清楚邏輯怎麼跑再動工。
條件
符合條件時才可以去處理的是否問題。
- 如果Excel檔案有資料 -> 才寄Email
- 如果欄位空白 -> 就跳過
- 如果今天是月底 -> 才跑月報流程

流程圖
在條件判斷中很多時候也會有很多不同的條件,這時除了if,另外的條件就會用到else if,最後剩下的條件用else。
Else If 就像層層疊的過濾網。順序非常重要。
- 補充: 條件是由上往下檢查的。一旦符合了第一個條件,程式就會執行那一段,然後直接跳過後面所有的條件。

例子: 就像分類郵件。
- If 標題有「急件」 -> 傳簡訊通知。
- Else If 標題有「發票」 -> 存到會計資料夾。
- Else (剩下的) -> 封存。
思考點:如果有一封信標題是「急件:發票」,因為它先符合了第一條,所以它只會被傳簡訊,不會被存到會計資料夾(除非邏輯改變)。這就是順序的重要性。
迴圈
讓流程重複做一樣的事直到條件滿足,在Power Automate中常見的操作例子像
- 讀取Excel每一行
- 讀取資料夾路徑的每一個檔案名稱
- 讀取PDF每一頁
像這樣有同樣的規律但要重複很多次進而去拿到不同的內容,就會用迴圈來處理,而迴圈又有分For迴圈跟While迴圈:
For 迴圈:用於當你明確知道要跑幾圈(知道要取多少次資料)時,而在這些資料裡你都要做一些處理。例如:你有一個Excel交易紀錄,你想要每一行都計算折扣,更新資料放回Excel。

For迴圈
While迴圈:不確定要跑幾次,只知道什麼時候該停,這時就可以使用。While的迴圈精神是還沒達成條件前會一直做下去,直到條件滿足才停止。例如:直到Excel檔案找到特定的關鍵字才跳出迴圈停止掃描,並返回這個關鍵字在Excel哪個位置。

While迴圈
補充:「無窮迴圈」的警示 (While 迴圈的坑)
在介紹 While 迴圈時,提到了「直到條件滿足才停止」,但新手常犯的錯誤是「條件永遠無法滿足」。這樣會讓流程一直困在迴圈中跑到電腦當機的慘案發生。
使用 While 時一定要確保有一個機制能改變狀態(讀取下一行時計數器 +1),否則機器人會陷入死循環(Infinite Loop)永遠跑不完。
以上介紹了條件及迴圈。在實際的流程當中,不會只有單純的For迴圈、While迴圈、if條件式判斷,而是混合著使用。其中最常見的是迴圈+if條件式判斷。例子: 讀取 Excel 每一行(迴圈),如果金額大於 1000 元(條件),才寄出 Email 通知主管,否則跳過。

混合使用
最後,留一個簡單的思考題當作以上內容的複習,如果是你會怎麼設計?
想像你是一個負責「發薪水」的機器人。 公司有 100 位員工,規則是:
- 每個人都要發底薪。
- 如果是業務部 (Sales),要額外計算業績獎金。
- 如果請假超過 3 天,要扣全勤獎金。
請問這張流程圖你會怎麼畫?
解答(參考用): 一層迴圈+條件式判斷就可以處理這樣的情境,但有其他好的idea也可以做!










