C# C语言,Switch语句
这里的新手,我的switch语句将不会显示除了默认输出之外的任何输出。尽管如此,我还是给它添加了中断。如果除了switch语句之外,还有其他与此程序相关的问题,请列出它们。谢谢: 刚开始使用此网站,我正在尝试填写更多详细信息,以满足细节太少的错误:/ 编辑1: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
因此,在将开关“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");
}