我做了一個switch語句,但是它只適用於已經設置的常量。如果我嘗試將其與用戶輸入一起使用,則只有其中一種情況有效,而其他情況則不會。現在無論我輸入什麼,它總是使用默認情況。我嘗試添加另一個getchar()來清除緩衝區中的\n
字符,但這沒有什麼不同。生病後整個switch語句這裏:開關語句不執行的情況(c)
char option=' ';
option=getchar();
switch(option){
//Parallel resistance calculations
case 'p':
CLEAR
//PResistance();
printf("RESISTANCE");
getchar();
break;
//Ohm's Law calculations
case 'o':
CLEAR
printf("OHM");
//Ohm();
break;
//Exits program
case 'q':
printf("Good bye! Stay safe in the laboratory! :)\nPress any key to exit");
getchar();
exit(0);
break;
//Error checking
default :
printf("Invalid input, Try again");
break;
}
}
while (option!='q');
我註釋掉的功能,所以我可以使用打印語句,如果它的工作進行測試。
只有選項是char變量時,交換機纔會匹配。如果它是int,會有問題。你可以改變選項爲char或者你可以使用'switch(option&0xFF){' –
選項是一個char變量。 – AJPennster
如果'option'是一個'int',它仍然會匹配。 'getchar()'無論如何都返回'int',並且''''''''''''''''''''是int。 –