如何修复我的'for'循环,使其循环直到我输入x?

时间:2018-04-24 03:59:32

标签: c

#include <stdio.h>

int main(void)
{
    char combo;
    int quantity;
    int ketqn;
    char ketupat;
    int sum;
    float protoprice;
    float orderprice, combp;
    float ketp;
    printf ("                  SATAY RESTAURANT                  \n");
    printf ("----------------------------------------------------------\n");
    printf (" Combo Type             Item                   Price (RM) \n");
    printf ("----------------------------------------------------------\n");
    printf ("   A        25 Chicken Satay + 25 Beef Satay      40.00   \n");
    printf ("   B        30 Chicken Satay + 20 Mutton Satay    52.00   \n");
    printf ("   C        10 Mutton Satay + 40 Beef Satay       46.00   \n");
    printf (" Add-on     1 Ketupat                              0.60   \n");
    printf ("----------------------------------------------------------\n");
    printf ("Enter combo type (A/B/C) : ");
    scanf("%c", &combo);
    printf("Enter quantity: ");
    scanf("%d", &quantity);

    for(combo!='X')/*it says error: expected ';' before ')' */
    {
    switch(combo){
    case'A':
    case'a': combp = 40.00; break;

    case'B':
    case'b': combp = 52.00; break;

    case'C':
    case'c': combp = 46.00; break;


    default: printf("wrong input"); combp = 0;
    }


    detaildetails
    }


    printf("Add-on ketupat (Y/N): ");
    scanf("\n%c", &ketupat);

    switch(ketupat){
    case'Y':
    case'y': ketp = 0.60; printf("Enter ketupat quantity: ");scanf("\n%d",&ketqn); break;
    case'N':
    case'n': ketp = 0; break;

    default: printf("wrong input");

    }
    orderprice = (combp*quantity) + (ketqn*ketp);
    printf("Order Price = RM %.2f",orderprice);
    }

我的问题是for循环无法编译。它应该保持循环,直到我键入x但它不编译。我该如何解决?

4 个答案:

答案 0 :(得分:4)

使用while循环代替for

while(combo != 'X')

答案 1 :(得分:2)

for (; combo != 'X'; ) {
   //your code
}

这是在你的情况下使用“for”循环的正确方法 C编程语言中for循环的语法是:

for ( init; condition; increment ){
  statement(s); 
}

在您的代码中,您只需要条件,因此可以省略 init和increment 部分。

答案 2 :(得分:0)

一旦你进行编译(见其他答案),它将无法正常工作 它将永远循环或永远不会执行身体 要修复此问题,请在increment或更改combo的循环体中添加内容 您可能希望将相应的输入读数移动到循环中。

答案 3 :(得分:0)

不要在你的程序中单独使用。像这样for(combo!='X') For循环有语法错误。这是for循环的示例代码

#include <stdio.h>

int main () {

   int a;

   /* for loop execution */
   for( a = 10; a < 20; a = a + 1 ){
      printf("value of a: %d\n", a);
   }

   return 0;
}

详细了解下面的教程点tutorialpoint您的答案可能是

for (; combo != 'X'; ) {
   //code you entered
}