C语言:error: a label can only be part of a statement and a declaration is not a statement|

来源:互联网 发布:最容易上手的编程语言 编辑:程序博客网 时间:2024/06/04 19:54

场景还原

一个简单的switch语句Demo

#include<stdio.h>int main(){  int a=1, b=2, re;  char c;  scanf("%c", &c);  switch(c)  {    case '+':      re = a + b;      break;    case '$':      re = a - b;      re++;      break;    case '#':      int other = 3;      re = a + b + other;      break;    default:      printf("Illegal input!\n");      break;  }  printf("%d\n", re);}

出错原因

在switch语句里定义了新的变量。在上例中在case '#'语句块中定义了新的变量other。

解决办法

给定义了新变量的case语句块套上大括号,这个错误就没了。

改后代码

#include<stdio.h>int main(){  int a=1, b=2, re;  char c;  scanf("%c", &c);  switch(c)  {    case '+':      re = a + b;      break;    case '$':      re = a - b;      re++;      break;    case '#':    {      int other = 3;      re = a + b + other;      break;    }    default:      printf("Illegal input!\n");      break;  }  printf("%d\n", re);}
0 0
原创粉丝点击