case后面的语句不加大括号,为什么有时候能编译通过有时候不能通过?
发布网友
发布时间:2022-04-30 21:33
我来回答
共1个回答
热心网友
时间:2023-10-14 17:56
case后面的语句不需要加大括号,只要别忘了break就行。不过有的编程规范上会建议用大括号把case后面的语句括起来。
你说的“不能通过编译”,可能是下面这个原因。C/C++里规定,不能在case语句里定义局部变量。例如:
int a = 2;
switch (a)
{
case 1:
int c = 10;
break;
case 2:
break;
default:
break;
}
编译就会出错,原因是在case 1里定义了局部变量c。
而C/C++还有一个很有意思的规定,用{}包括的语句,认为是一个”语句块“,而在语句块里就能想干什么就干什么。
比如:
switch (a)
{
case 1:
{
int c = 10;
break;
}
case 2:
break;
default:
break;
}
这样就能通过编译了。
再多说两句废话。C/C++里这个用{}括起来的语句块,可以认为是一段完全独立的代码。比如:
int a = 2;
{
int a = 3;
}
这样完全没问题。而你要是把这对大括号删掉,就会出错。
case后面的语句不加大括号,为什么有时候能编译通过有时候不能通过?
case后面的语句不需要加大括号,只要别忘了break就行。不过有的编程规范上会建议用大括号把case后面的语句括起来。\x0d\x0a你说的“不能通过编译”,可能是下面这个原因。C/C++里规定,不能在case语句里定义局部变量。例如:\x0d\x0a\x0d\x0aint a = 2;\x0d\x0a\x0d\x0a switch...
...case下面可以写很多语句吗?要不要用大括号括起来???
加了之后,大括号框定了作用域,大括号内定义的变量只在大括号内部有效。不加的话,一个case中定义的变量,会在另一个case中也能访问,不安全。
关于switch-case语句是否需要加花括号
在编写C++代码时,若遇到错误提示:“不能从switch语句跳转到此case标签”,可能是因为switch-case结构中的case标签后未加花括号。通常情况下,switch-case语句中的case标签后无需加花括号,除非在case语句中声明了变量。此规则旨在提升代码可读性与清晰度,避免作用域不清可能导致的逻辑问题。不使用花括号...
case语句中的函数体真的可以不加花括号吗?
在编程世界里,理解case语句的使用至关重要。正如楼上所述,确实,在某些情况下,在case语句的函数体中,你无需使用花括号将其包围,这取决于你的代码逻辑是否需要明确的区块。每个case分支后是否需要加上break,这取决于你的程序设计,是否需要强制退出当前循环。通常情况下,每个case后都应当有一个break...
SWTICH语句case后面只能接一个表达式吗?
1、一个case紧接的条件表达式只能是一个编译期确定的整型常量表达式。case和这个常量表达式组成一个标签,这个表达式是当标号用的,所以必需在编译期确定。2、case标签本身不会被执行。一个case标签后可以接零条或多条语句(可以用大括号组成一条复合语句,但不必要)。遇到break;时控制流跳出switch。3、...
C++中关于case中for循环的问题
就是说在for之后也是可以使用的,那么按照去掉大括号的程序,i的作用域是从声明之处到switch的大括号结束。而default标签跳过了i的声明语句却在i的作用域之中,这显然是有问题的。之所以加上大括号是正确的,是因为大括号改变了i的作用域 按照标准,这段代码的错误是main函数的类型是int,其他没错。
c++里 case后可以跟多个语句么
可以。用switch语句,最好要注意break的使用,还有最后都加上default 语句。
求问这道关于Switch语句的c语言的题
这是因为这个switch...case句块的执行顺序是这样的,一开始k=8,在case从句中没有匹配的,所以它会执行defult句块中的内容,因为没有break语句来中断,所以在那之后会继续往下执行case10,case11句块中的内容,直到触底退出,因为这个过程共有3个k+=1语句,所以k被加了3次1,这样k的值就从8变成了...
关于C语言switch语句的break问题
= 也就是说当程序判断某个case的条件为真后,它将在执行该case所带的的语句块之后不再对后面的case的条件进行判断而直接执行。所以将第一个break去掉并输入0之后程序判断第一个case的条件为真,输出e,再继续执行第二个case后的语句,又输出e,之后遇到break语句退出switch结构。所以输出是两个e。
switch case用法举例
1.swich 后面括号内的'表达式必须是整数类型. 也就是说可以是 int 型变量、 char 型变量, 也可以直接是整数或字符常量, 哪伯是负数都可以, 但绝对不可以是实数, float 型变量、double 型变量、小数常量通通不行, 全部都是语法错误。2) switich 下的 case 和 defaut 必须用一对大括号{}括起来 ...