用switch语句询问用户输入新内容?

时间:2014-10-13 23:33:57

标签: c input

我正在编写一个计算净工资的程序。用户将输入与菜单选项相对应的数字(5个选项)。 我已经完成了大部分工作,但是如果他们不输入整数1-5,它应该重新提示用户,它应该重复该程序,直到用户选择退出选项。我尝试了一些goto的东西,它主要起作用,但我被告知要远离goto。

如果用户输入除整数1-5之外的其他内容,并且重复直到输入5,我怎样才能让程序返回到开头?

以下是一些代码: 我删除了一些说出WAGE1 WAGE2等的#define语句。此外,pay()的函数定义不在这里,它工作正常。

#include <stdio.h>
void pay(float wage);
int main(void)
 {
   int choice;
   start :
   printf("--------------------------------------------------------------------\n");
   printf("Enter the number corresponding to the desired pay rate or action:\n");
   printf("1) $8.75/hour                     2) $9.33/hour\n");
   printf("3) $10.00/hour                    4) $11.20/hour\n");
   printf("5) quit\n");
   printf("--------------------------------------------------------------------\n");

   scanf("%d", &choice);

   switch(choice)
   {
   case 1 : pay(WAGE1); break;
   case 2 : pay(WAGE2); break;
   case 3 : pay(WAGE3); break;
   case 4 : pay(WAGE4); break;
   case 5 : printf("Goodbye!\n"); break;
   default : printf("Please enter 1, 2, 3, 4, or 5.\n");    
   }

   system("PAUSE"); 
   return 0;
 }

另外,如果这不是一个好问题,你能告诉我为什么吗?然后我可以在下次问一个更好的。

1 个答案:

答案 0 :(得分:0)

删除default案例并将scanf更改为

   do {
     scanf("%d", &choice);
     if (choice < 1 || choice > 5)
       printf("invalid input.Try again \n");
   } while(choice < 1 || choice > 5);