在我的一個問題集中,我需要重寫一個程序,該程序已切換到if/else語句。將開關程序重寫爲if
該計劃是對輸入的成績進行計數,所以如果我輸入「a」,它會記錄下來,當我退出程序時,它會給用戶輸入所有成績的最終計數。
我有兩個問題,第一個問題是它根本無法正常工作,它不會像我設置的合法字符那樣讀取字符輸入。第二個是如何防止其他if語句在執行正確的語句之後執行。
我把它設置爲if/else語句中的中斷。我不確定他們是否工作,因爲該計劃顯然甚至不接受角色。
我打算讓他們轉到,但原來的程序有中斷,所以我用它們代替。
{
int grade;
int aCount=0;
int bCount=0;
int cCount=0;
int dCount=0;
int fCount=0;
puts("Enter the letter grades");
puts("Enter EOF to end input");
while((grade = getchar()) != EOF)
{
if(grade == 'A' && grade == 'a')
{
++aCount;
break;
}
else
{
printf("%s\n", "That's not a valid grade, please enter again");
break;
}
if(grade == 'B' && grade == 'b')
{
++bCount;
break;
}
else
{
printf("%s\n", "That's not a valid grade, please enter again");
break;
}
if(grade == 'C' && grade == 'c')
{
++cCount;
break;
}
else
{
printf("%s\n", "That's not a valid grade, please enter again");
break;
}
if(grade == 'D' && grade == 'd')
{
++dCount;
break;
}
else
{
printf("%s\n", "That's not a valid grade, please enter again");
break;
}
if(grade == 'F' && grade == 'f')
{
++fCount;
break;
}
else
{
printf("%s\n", "That's not a valid grade, please enter again");
break;
}
}
puts("\nTotals for each letter grade are:");
printf("A: %d\n", aCount);
printf("B: %d\n", bCount);
printf("C: %d\n", cCount);
printf("D: %d\n", dCount);
printf("F: %d\n", fCount);
return 0;
}
您需要鏈'其他if'你的條件和'else'報告錯誤完成鏈。 –
你預計什麼時候'grade =='A'&& grade =='a''爲真? –
儘管我們可以猜測你原來的'switch'版本是什麼樣子,但將它包含在你的問題中仍然很有幫助。 –