- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
2#
發表於 2021-11-26 00:21
| 只看該作者
本帖最後由 luhpro 於 2021-11-26 00:26 編輯
請教 板友 怎用 雙重的 for 迴圈 來 做到畫面 的星星 箭嘴?
adrian_9832 發表於 2021-11-24 15:23 
其實這可以看成單純的數學計算 :
1. 從左到右共8欄 : iI = 1 to 8
2. :從上到下有星號的列號依序為: 3 to 3, 2 to 4, 1 to 5, 3 to 3, 3 to 3.....
故而 起列 為 3, 2, 1, 3, 3......
而末列為 : 3, 4, 5, 3, 3......
可以明顯區分為4以下(分別各增減1) 及 3以上(都是3) 兩個區塊算式
則可以得下式 :
起列 :(下式貼到即時運算視窗執行可知算式結果)
For iI = 1 To 8: iJ = -(4 - iI) * (iI < 4) - (iI > 3) * 3: Debug.Print iI, iJ: Next
而末列則為 :
For iI = 1 To 8: iJ = -(2 + iI) * (iI < 4) - (iI > 3) * 3: Debug.Print iI, iJ: Next
綜合上述則可得 :- Sub nn()
- Dim iI%, iJ%, iK%
-
- Range(Cells(1, 1), Cells(5, 8)).ClearContents ' 清除星號
-
- For iI = 1 To 8
- iK = (iI > 3) * 3 ' 減號後面的算式
- For iJ = -(4 - iI) * (iI < 4) - iK To -(2 + iI) * (iI < 4) - iK
- Cells(iJ, iI) = "*"
- Next iJ
- Next iI
- End Sub
複製代碼
雙重forloop請教印星星star-a.zip (13.39 KB)
|
|