以下是我的程式在debug中我觀察到
void CheckKey::SetState(int n, BOOL state) 1
{
if(state==TRUE) //TRUE 要將他設為壓下狀態 2
{
if(keys[n]==FALSE) //原先非壓下狀態 3
{
//此為新壓下者
keys[n]=TRUE; 4
news[n]=TRUE; 5
}
else //原先就是壓下狀態 6
news[n]=FALSE; //過期的壓下狀態 7
}
else //FALSE 要將他設為非壓下狀態 8
keys[n]==FALSE; 9
} 10
當我的state參數為FALSE時,當執行到2行過後,不是跳到8行去執行else,而是跳到10行去。個別函數有bug我們清楚了避免去用也罷了,這個問題可大了,總不能喊我今後不用else呀!
void CheckKey::SetState(int n, BOOL state) 1
{
if(state==TRUE) //TRUE 要將他設為壓下狀態 2
{
if(keys[n]==FALSE) //原先非壓下狀態 3
{
//此為新壓下者
keys[n]=TRUE; 4
news[n]=TRUE; 5
}
else //原先就是壓下狀態 6
news[n]=FALSE; //過期的壓下狀態 7
}
else //FALSE 要將他設為非壓下狀態 8
keys[n]==FALSE; 9
} 10
當我的state參數為FALSE時,當執行到2行過後,不是跳到8行去執行else,而是跳到10行去。個別函數有bug我們清楚了避免去用也罷了,這個問題可大了,總不能喊我今後不用else呀!
keys[n]==FALSE; 为什么是 keys[n]==FALSE; ???? "=="????
keys[n]==FALSE; 9
为什么用"=="?"我用==TRUE/==FALSE是為了看起來清楚"
_____________________
:)