標題:
AutoHotKey 條件迴圈問題
- 500D買哪支閃光比較好 430 跟 580
- 台中西屯區勇建光翼一坪多少錢!-
- 100年統測設計群413分可以推哪-
- 中國大一或是美國大---------
- 預科心理學同埋升大學既問題
- 愛爾蘭折疊車的問題
- kotoko係咪有一首歌叫做 謝謝--
- 如何從基隆搭車到信義路二段的台灣英文新聞
- 想請問大家有沒有認識處理類似病例(不定期無故昏倒)的醫生。
- 點樣係yam blog到整背景音樂落去--
此文章來自奇摩知識+如有不便請留言告知
發問:
我自己大概看一下網路寫了下面這一串語法我想做一個無限迴圈color1不是0xa7494b顏色的時候按一下1,color2不是0x981c21顏色的時候按一下2,color3不是0x740a15顏色的時候按一下3,但他卻直接忽略了顏色的條件直接按按鍵不知道是我哪裡錯了,請幫忙指點,感謝。Loop {PixelGetColor, color1, 120,868If (color1 = "0xa7494b"){PixelGetColor, color2, 120,904If (color2 =... 顯示更多 我自己大概看一下網路寫了下面這一串語法 我想做一個無限迴圈 color1不是0xa7494b顏色的時候按一下1, color2不是0x981c21顏色的時候按一下2, color3不是0x740a15顏色的時候按一下3, 但他卻直接忽略了顏色的條件直接按按鍵 不知道是我哪裡錯了,請幫忙指點,感謝。 Loop { PixelGetColor, color1, 120,868 If (color1 = "0xa7494b") { PixelGetColor, color2, 120,904 If (color2 = "0x981c21") { PixelGetColor, color3, 120,940 If (color3 = "0x740a15") { Continue } else { Send {3} sleep 500 } } else { Send {2} sleep 500 } } else { Send {1} sleep 500 } } 更新: 我覺得我表達得很清楚,你問的問題挺奇怪的..... 假設不是顏色A的時便按一下1,不是顏色B按一下2,不是顏色C按一下3。 那麼如果是顏色D(即不是A或B或C),你要的是? 都不是就重新執行迴圈 因為" 點 "是固定的所以顏色D就即不是ABC,那如果不是當然是執行點ABC該按的按鍵 我想設定的是一個階層迴圈 點1不是這顏色時按1(最後)
最佳解答:
先不理上面的程式,在你要求的設計下本身都有邏輯上的問題要解決。 如果未能攪清楚,是沒有辦法寫好這個程式的。 邏輯上的問題是: 假設不是顏色A的時便按一下1,不是顏色B按一下2,不是顏色C按一下3。 那麼如果是顏色D(即不是A或B或C),你要的是? a) 只按一下1 b) 只按一下2 c) 只按一下3 d) 123都按一下 如果是顏色B(即不是A或C),你要的是? a) 只按一下1 b) 只按一下3 c) 1和3都按一下 上述的程式在if中一旦不是顏色A就走到else send{1}。 這是電腦語言的if...else...的意思,一旦 if 的條件不符,它絕對不會再看 if 內裏的 if 條件了。 這就是上面提及要攪清楚的邏輯。 如果你要做的是123都按的情況,你應該將上面的程式直接用3個分開的if,而不是nested if。 如果你要做的是只按某一個按一下,就要好好組合if...elseif...elseif...else...的次序。 2014-09-17 14:51:42 補充: 你的描述跟你寫在程式是不同的表達。 描述就如你所說,可以是全部執行點ABC該按的按鍵(我的結果d - 123都按一下),但看不到你要求的優先次序(你要的是321)。 「我想設定的是一個階層迴圈 點1不是這顏色時按1(最後) ,兩個是一樣的。
其他解答:
我不知你的邏輯,現改寫你的IF CASES,注意,如果IF COLOR1 = FALSE,以下COLOR2,COLOR3都不會CHECK,直到最底的SEND1,這是你要的邏輯嗎﹖ Loop { PixelGetColor, color1, 120,868 If (color1 = "0xa7494b") { PixelGetColor, color2, 120,904 If (color2 = "0x981c21") { PixelGetColor, color3, 120,940 If (color3 = "0x740a15") { Continue } else { Send {3} sleep 500 } } else { Send {2} sleep 500 } } else { Send {1} sleep 500 } }D1B39E804036C6BD