菜鸟对switch语句的一些疑惑
我想在switch语句中写一个递归,在case后面在递归这个switch语句,但是我把里面的变量改了,这样可以不?
switch (p->data)
{
case 'a':{t=p->next;switch(t->data)};break;
case 'n':{t=p->next;switch(t->data)};break;
case 't':{t=p->next;switch(t->data)};break;
case 'i':printf("反对");break;
}
里层的switch语句会不会再走外层的switch,我感觉是不会,但是不确定,也不知道怎么验证。求大神帮忙 C语言编程?菜鸟 菜鸟对switch语句的一些疑惑
[解决办法]
switch不是函数,不能递归的
[解决办法]
语法需要学习背诵和练习,不能推测和发明
[解决办法]
switch语句无法递归,你的用法只能说是嵌套而已,嵌套多少层也都是一个顺序分支的流程而已。
struct node
{
int data;
struct node *next;
};
struct node *p = NULL;
void switchFunction(int data)
{
struct node *t;
switch (p->data)
{
case 'a':{t=p->next;switchFunction(t->data);};break;
case 'n':{t=p->next;switchFunction(t->data);};break;
case 't':{t=p->next;switchFunction(t->data);};break;
case 'i':printf("反对");break;
}
}
while (p)
{
switch(p->data)
{
}
p = p->next;
}