我试图在switch语句中插入if else语句,但只打印出else语句。有什么帮助吗?我指的是第三个switch语句。
num_remain= num_temp/10;
switch (num_remain)
{
case 0: printf(" "); break;
case 2: if (num=0)
printf("Twenty");
else printf(" And Twenty"); break; // If num= 0 or not, it just prints "And Twenty".
case 3: printf(" Thirty"); break;
case 4: printf(" Fourty"); break;
case 5: printf(" Fifty"); break;
case 6: printf(" Sixty"); break;
case 7: printf(" Seventy"); break;
case 8: printf(" Eighty"); break;
case 9: printf(" Ninety"); break;
}
答案 0 :(得分:5)
if (num=0)
您错过了一个=
符号,导致这是一个作业if(num=0)
与if(0)
相同,因此始终为假。它应该是
if (num==0)
或更好:
if(0 == num)
通过抛出错误来防止这样的错误。
修改强>
你说这不能解决问题,那么还有其他问题。这是一个可行的示例代码:
int i = 2;
int j = 0;
switch(i)
{
case 0:
printf("it's 0\n");
break;
case 1:
printf("it's 1\n");
break;
case 2:
printf("it's 2\n");
if(0 == j)
printf("j is 0\n");
else
printf("hit the else\n");
break;
default:
printf("The default\n");
}
此代码是您尝试执行的操作的概念验证。它打印“它是2”,然后是“j是0”,因为它有效。如果您的代码仍然无法运行,那么您正在做其他事情,而您没有向我们展示,或者您的变量未按照您的想法设置。检查变量,在输入开关之前打印它们。
答案 1 :(得分:4)
if (num==0)
而不是
if (num=0)
答案 2 :(得分:0)
其他人已经回答了你的问题,但为了让你更容易,你还可以引入范围,使程序员更容易阅读和写作:
// the braces introduce scope, and make it easier to read and find your bugs.
case 2:
{
if (0 == num)
{
printf("Twenty");
}
else
{
printf(" And Twenty");
}
} break;