2015-10-23 17 views
0

所以我有下面的代碼,不知道爲什麼它不會被執行嵌套如果statment在一段時間循環C

int main() { 
char select; 
printf("Select q to quit\n"); 
while ((select = getchar()) != 'q') { 
    if(select == 'a') { 
     printf("You have not selected q\n"); 
     printf("Select q to quit\n"); 
    } 
return 0; 
} 

所以當選擇說「一」的人物選擇,它不走進入if語句。這是爲什麼??

+0

int main() { char select; printf("Select q to quit\n"); while ((select = getchar()) != 'q') { if(select == 'a') { printf("You have not selected q\n"); printf("Select q to quit\n"); } } return 0; 

問候'select',以確保它是「一」? – John3136

+0

是的,它通過循環兩次出於某種原因...我得到它打印「aa」 –

回答

0

對我來說這個代碼是在OSX上工作。但是你有問題,如果你按下a鍵,它也會退出。所以,簡單地移動「返回0」您是否嘗試打印:)

+0

int main(){ char select; printf(「選擇q退出:」); ((select = getchar())!='q'){if(select!='q'){ printf printf(「選擇q退出:」); } } return 0; } –

+0

這是更新...你能告訴我爲什麼它打印if語句兩次,如果選擇不等於q? –

+0

我認爲它也得到了字符串終結符「\ 0」快速和骯髒的解決方法:忽略字符串終止符。 – user3321030