C# C语言,Switch语句

C# C语言,Switch语句,c#,c,switch-statement,conditional-statements,C#,C,Switch Statement,Conditional Statements,这里的新手,我的switch语句将不会显示除了默认输出之外的任何输出。尽管如此,我还是给它添加了中断。如果除了switch语句之外,还有其他与此程序相关的问题,请列出它们。谢谢: 刚开始使用此网站,我正在尝试填写更多详细信息,以满足细节太少的错误:/ 编辑1: 因此,在将开关“m”更改为开关m后,我的输出仍然相同。如果我尝试使用If..else If,我希望我的输出只显示'F'或'F'代码,我得到的是所有包含的'I'和'I'代码。switch语句中传递的参数是字符常量'm',而不是要检查的变量m

这里的新手,我的switch语句将不会显示除了默认输出之外的任何输出。尽管如此,我还是给它添加了中断。如果除了switch语句之外,还有其他与此程序相关的问题,请列出它们。谢谢:

刚开始使用此网站,我正在尝试填写更多详细信息,以满足细节太少的错误:/

编辑1:
因此,在将开关“m”更改为开关m后,我的输出仍然相同。如果我尝试使用If..else If,我希望我的输出只显示'F'或'F'代码,我得到的是所有包含的'I'和'I'代码。

switch语句中传递的参数是字符常量'm',而不是要检查的变量m

你必须这样通过:

开关m{ //你的密码在这里 }
澄清AbdulBasit的答案,这基本上是正确的,但没有说明代码编译的原因,但给出了错误的答案

正如AbdulBasit所指出的,开关“m”使用的是单个字符“m”-实际上不是字符串本身-但它是完全有效的代码

代码所做的就是说-

将字符“m”与以下情况中的值进行比较,然后执行匹配。 将“m”与“F”和“F”进行比较。是的,为了精确起见,这是两个从第一个案例到第二个案例的失败案例。 不匹配,请尝试下一个案例。 将“m”与“I”和“I”进行比较。 不匹配,请尝试下一个案例。 没有下一个病例。如果存在,请尝试默认情况。 执行默认情况-告诉用户他们需要输入“F”或“I”。
正如AbdulBasit所指出的,虽然scanf确实将用户输入读取到变量m中,但开关正在运行与常量字符“m”的比较。

如果您用C标记问题,而不是COh,您可能会发现更多的C语言程序员。谢谢您提供的信息:0是的,对不起,我的不好。它是以人物的形式出现的。唉,我试过了。输出仍然相同,它将跳转为默认值:/。请尝试更改扫描%c\n,&m;要扫描%c,&m;是的,你好,谢谢你的补充。尽管如此,即使在稍微更改代码后,我仍然得到相同的输出:/
 void main()
    {
        printf("     IT Magey      \n");
    
        int code;
    
        printf("\nEnter item code : T");
        scanf("%d", &code);
    
        double price;
        printf("Enter item price : ");
        scanf("%lf", &price);
    
        double dct;
        printf("Enter discount ('%%') : ");
        scanf("%lf", &dct );
    
        char m;
        printf("Enter payment mode (F or I): ");
        scanf("%c \n", &m);
    
        switch (m)
       {
       case 'F':
       case 'f':
        printf("\n");
    
        printf("Payment Details \n");
        printf("-----------------------------\n");
        printf("Item Code : T003256\n");
        printf("Item price: USD 2342.80\n");
    
        double dct1=price*dct/100;
        printf( "Discount: USD%lf \n", dct1);
    
        double amount1=price-dct1;
        printf("Amount to pay: USD%lf", amount1 );
        break;
    
    
       case 'I':
       case 'i':
        printf("\n");
    
        int mth;
        printf("Enter number of installments (months) : ");
        scanf("%d", &mth);
    
        printf("\n");
    
        printf("Payment Details \n");
        printf("-----------------------------\n");
        printf("Item Code : T003256\n");
        printf("Item price: USD 2342.80\n");
    
        double dct2=price*dct/100;
        printf( "Discount: USD%lf \n", dct2);
    
        double amount2=price-dct1;
        printf("Amount to pay: USD%lf", amount2 );
    
        printf("\n");
    
        printf("Number of installments : %d \n", mth);
    
        double amount3=price/mth;
        printf(" Amount to pay per installement : USD%lf", amount3 );
        break;
    
       default:
        printf("Please select only F or I");
    
    
    
    
    
       }