2009-09-27 46 views
0

我正在處理某些事情,而我有兩件事情。如何寫一個循環

第一個是,我試圖做一種計數器,使用PostMessage鍵入從0000到3600. 我需要它停止每隔幾次PostMessage編號並執行另一部分代碼,然後在代碼完成了10次,然後執行相同的代碼,依此類推。

第二:我需要一個函數來檢測特定顏色是否在某個像素中,如果是,那麼它會執行更多的代碼。

下面是我試過的代碼,但失敗:

void loop() 
{ 
    int start = Convert.ToInt32(textbox1.Text); 
    for (int i = start;i == 9999; i++) 
     if(i == 0004) 
     PostMessage(hWnd, WM_CHAR, i, 0); 
} 

這裏的最後一個版本,這也不起作用:

void function()  
{  
    for (int i = 0000; i <= 3600; i++)  
    {  
     PostMessage(hWnd, WM_CHAR, i, 0); //PostMessage i  
     PostMessage(hWnd, WM_KEYDOWN, 0x0d, 0x1c0001); //Press Return  
     Sleep(1000); //System.Threading.Thread.Sleep  
     if ((i % 4) == 0)  
     {  
      Execute(); //My Code Block to execute after i tries 4 times.  
     }  
    }  
} 
+0

這是功課嗎? – 2009-09-27 11:11:50

+0

是的,或多或少。 – Brandon 2009-09-27 11:17:44

+0

也許你可以告訴我們你寫的代碼到目前爲止?人們通常不喜歡只爲你寫代碼...... – 2009-09-27 11:19:29

回答

2

下面是一些僞代碼,讓你開始你的第一個問題:

for number = 0 to 3600 
    print number 
    if number mod 10 = 0 
     do other stuff 
end 

或C#:

for(int number = 0; number <= 3600; number++) { // decide < vs <= 
    Print(number); // TODO: this function 
    if((number % 10) == 0) { 
     DoOtherStuff(); // TODO: this function 
    } 
} 

發佈您到目前爲止所做的一切,我相信人們可以更具體。問題是一個非常基本的循環功能,所以你必須至少能夠得到一些東西。

+0

我不喜歡它。爲什麼模數,如果你可以通過嵌套另一個for-loop來更直接地表達所需的語義? – Joren 2009-09-27 11:35:51

+4

這個問題似乎沒有提示嵌套循環......模數在這裏完全有意義。 – 2009-09-27 11:50:46

+0

(我希望你不介意編輯一個C#版本來匹配標籤;如果這是一個問題,只需點擊編輯歷史記錄上的「回滾」按鈕) – 2009-09-27 11:53:35