我写了这部分代码,并显示了一系列错误。上面提到的错误是第一个。代码有什么问题?

void direction(char ch)
{

switch(ch)
case 'w': if(dirn!=3){dirn=1;}
          break;

case 'a': if(dirn!=2){dirn=4;}
          break;

case 's': if(dirn!=1){dirn=3;}
          break;

case 'd': if(dirn!=4){dirn=2;}
          break;

最佳答案

只有当switch块中只有一个大小写时,才可以选择忽略switch语句的左括号和右括号,如下所示:

void direction(char ch)
{
    switch(ch)
    case 'w': if(dirn!=3){dirn=1;}
}


但是,如果您有多种情况需要处理,则必须将它们用一对大括号括起来,以便为switch语句创建一个代码块,如下所示:

void direction(char ch)
{

switch(ch)
{//opening brace for starting of statement block
    case 'w': if(dirn!=3){dirn=1;}
          break;

    case 'a': if(dirn!=2){dirn=4;}
          break;

    case 's': if(dirn!=1){dirn=3;}
          break;

case 'd': if(dirn!=4){dirn=2;}
          break;
}//closing brace for closing of statement block


因此,您将必须删除所有情况,但必须删除一个或添加一对大括号以创建语句块。在所有其他情况下,您的代码将无法成功编译。

关于c++ - 错误:break语句不在循环或开关内,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41423779/

10-11 17:04