`
stephen830
  • 浏览: 3011612 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

switch case语句里面不能定义对象,有语法错误,除非加一个花括号

 
阅读更多

 

switch case语句里面不能定义对象,有语法错误,除非加一个花括号

 

转载自 http://blog.csdn.net/fanjunxi1990/article/details/9162945

 

最近发现一个问题呢 发现在switch的case里面不能去定义对象了,一定义对象就会报错了

 

仔细了解了一下在C或者C++中,只要是在任何一对花括号 “{ }”中定义的对象,那么该对象的作用域就局限在这对花括号里面,上面的代码的错误就出现在这儿了。

 

 

 

[java] view plaincopy
  1. switch (i) {  
  2.         case 0:  
  3.             UIViewController *view = [[UIViewController alloc]init];  
  4.             //。。。。code  
  5.             break;  
  6.         case 1:  
  7.             //此处如果在使用view的话就会出错了。。。  
  8.             break;  
  9.         default:  
  10.             break;  
  11.     }  


1. view的作用域应该是整个switch语句。 也就是不管case 0 还是case 1,都应该起作用的。

 

2.加入此时的i 为1,那么程序会跳过case 0,直接执行case 1。 假如你又在case 1中调用对象view,那么此时的view是没有初始化 没有声明的,自然而然的出错了。

 

所以这是一个语法错误

 

3.就是出于这种原因  才有了我们看到的结果,那么知道了原因 就要解决问题了, 既然view的作用域只想在case 0里面 那么我们加个花括号不就好了吗

 

此时的代码改为以下

 

  1. switch (i) {  
  2.         case 0:  
  3.         {  
  4.             UIViewController *view = [[UIViewController alloc]init];  
  5.             //。。。。code  
  6.         }  
  7.             break;  
  8.         case 1:  
  9.             //此处如果在使用view的话就会出错了。。。  
  10.             break;  
  11.         default:  
  12.             break;  
  13.     }  


 

这样就没问题了,或者把view声明在swith语句的前面就OK了。

 

 

分享到:
评论

相关推荐

    C语言switch语句学习教案.pptx

    * 每个 case 分支可有多条语句,可不用花括号 { }。 * 各个 case 语句只是一个入口标号,并不确定执行的终止点。 * 一般在各个 case 语句最后应该加一 break 语句,可以使程序流程跳出 Switch 结构。否则会从入口处...

    Java switch case 语句.docx

    - 不包含break的case语句会导致程序继续执行下一个case,直到遇到break或到达switch的结尾。 5. **default分支**: - default是可选的,通常作为switch语句的最后一个分支,但也可以放在其他位置。 - 当表达式的...

    switch 语句与 case 语句一起使用,每个 case 对应一个可能的值.rar

    1. `expression`:这是`switch`语句的核心,它是一个计算后能产生整型、字符型、枚举类型或者字符串类型的表达式。根据这个表达式的值来决定执行哪个`case`下的代码。 2. `case value1`:每个`case`后面跟一个可能的...

    switch语句

    3. `break`:每个`case`后通常有一个`break`语句,它的作用是跳出整个`switch`结构,防止执行下一个`case`的代码。如果不使用`break`,则会继续执行后续的`case`,直到遇到`break`或到达`default`。 4. `default`:...

    实验一 条件语句、循环语句的使用 2.switch 条件语句

    这个实验主要关注的是`if`条件语句、`switch`条件语句以及`while`和`for`循环语句的使用,同时涉及到循环嵌套的实践。 首先,`if`条件语句是基于特定条件执行或跳过代码块的基础结构。其基本语法形式如下: ```...

    c语言switch case语句.docx 代码

    C语言中的`switch`和`case`语句是控制流程的一部分,它们提供了多路选择的结构,使得程序可以根据不同的条件执行不同的代码块。在C语言中,`switch`语句通常用于替代一系列的`if...else if...else`语句,以实现更...

    c 语言 switch 语句学习

    - 如果存在 `break` 语句,当找到一个匹配的 `case` 子句后,执行该子句内的代码直至遇到 `break` 语句为止,随后跳出整个 switch 语句。 - 若找不到匹配的 `case` 子句,则执行 `default` 子句(如果存在),然后...

    Python-switchcase用纯Python实现的SwitchCase结构

    标题提到的"Python-switchcase"是一个项目,旨在通过纯Python代码实现一个类似于`switch-case`的功能。下面将详细介绍如何实现以及使用这样的结构。 在Python中,`switch-case`的常见实现方法是使用字典...

    switch-case语句用法

    在处理多个可能的条件分支时,switch-case语句能有效地组织代码,使得每一种情况对应一个独立的执行路径。 **基本语法:** switch(表达式){ case 常量表达式1: 语句1; break; case 常量表达式2: 语句2; break...

    c语言if语句实例_C语言if语句和switch语句实例_If..._

    `condition`是一个布尔表达式,如果其结果为真(非零),则执行大括号内的代码;否则,跳过这段代码。if语句还可以与else配合使用,当条件不满足时执行另一段代码: ```c if (condition) { // 当condition为真时,...

    C语言中分支结构:if语句、if-else语句和switch语句的使用方法.docx

    例如,以下是一个switch语句的示例,根据一个数的值输出不同的信息: ```c #include int main(){ int num; printf("请输入一个整数:"); scanf("%d", &num); switch (num) { case 1: printf("这个数是1\n")...

    计算机二级C语言考点18switch-case语句.pdf

    在C语言中,`switch-case`语句是一种流程控制结构,用于根据不同的条件执行不同的代码块。它通常作为替代多个`if...else if...else`语句的简洁方式。以下是关于`switch-case`语句的一些关键知识点: 1. **switch...

    switch、case、break语句的简单应用

    若没有`break`,程序会"落入"(fall through)下一个`case`,除非遇到`break`或者`switch`结束。 4. **default**:可选的`default`子句,当`expression`不匹配任何`case`时执行。这提供了一个默认的操作路径,确保...

    javaif语句和switch语句.doc

    * 如果在 if 语句后面跟着一个大括号,即使只有一个语句,也可以使用大括号。这可以避免一些编程错误。 * 在使用嵌套 if 语句时,需要注意 else 语句的对应关系。一个 else 语句总是对应着和它在同一个块中的最近的 ...

    用switch语句判断每个月有多少天

    在编程领域,`switch`语句是一种常用的控制流结构,...总的来说,使用`switch`语句判断每个月有多少天是一个很好的编程练习,它涵盖了条件判断、逻辑处理以及基本的日期和时间操作,这些都是软件开发中不可或缺的技能。

    case 后面可以加判断句吗?

    然而,在标准的 JavaScript 语法中,`case` 后不能直接跟一个条件判断表达式,而是应该跟一个具体的值或者表达式的结果。 #### 示例解析 给定的示例代码片段中: ```javascript switch(ParseInt(n/10)) { case 1: ...

    switch语句大全下载

    - **break语句**:为了避免意外的fallthrough(即一个case执行后继续执行下一个case),通常在每个case后添加break。 - **default分支**:提供一个默认的分支,处理所有未匹配的情况,提高代码的健壮性。 - **...

    使用switch语句构成的分支结构实现选择主菜单中的选项

    本主题将深入探讨如何使用`switch`语句来构建一个主菜单,让用户能够选择不同的功能。 `switch`语句的基本语法如下: ```java switch (expression) { case value1: // code to be executed if expression ...

    switch语句在java和c#中的区别

    在这个例子中,C# 的 `switch` 语句有一个重要的特点:如果没有 `break` 语句,程序会继续执行下一个 `case`。因此,当 `Grade / 10` 等于 7 时,`case 7:` 和 `case 6:` 都会被执行,导致输出 "你的成绩为:C" 和 ...

    switch case.docx

    Java 语言中的 `switch case` 语句是一种流程控制结构,用于执行多个条件分支中的一个。这个语句常用于简化基于不同条件执行不同操作的代码。在给定的例子中,`switch case` 被用来根据学生成绩等级输出相应的评价。...

Global site tag (gtag.js) - Google Analytics