zoukankan      html  css  js  c++  java
  • switch语句下的变量声明和定义

    switch语句下的变量声明和定义的问题:

    switch...case...语句中存在声明和定义会出现一些问题。这个由switch语法特性决定的, switch中每个case都是平等的层次,区别于一般的if else语句,我们知道swich的case语句可以这样写:

    switch (i)
    {
      case 1:
      case 2:
        int n = 0;
        break;
      case 3:
        break;
      default:
        break;
    }
    

    所以整个switch语句处在同一个代码块中,只不过有多个case语句,既然多个case在同一个代码块中,那么int n = 0;的语句就是块中局部变量,我们知道变量在编译器中编译时,是从它的定义点开始有效的,也就是说int n=0;在整个代码块中都是可见的,但又个问题这里switch语句,编译器在编译的时候有可能跳过case 2中的int n=0;定义,所以编译器才报错,当然解决这个语法错误有3种方法:

    解决方法:

    (1)case中加括号,明确声明变量的域。

    switch (i)
    {
      case 1:
      case 2:
        {
          int n = 0;
        }
        break;
      default:
        break;
    }
    

    (2)变量只声明不定义,只有使用的时候才去定义。

    switch (i)
    {
      case 1:
      case 2:
        int n;
        n = 0;
        break;
      default:
        break;
    }
    

    (3)变量的定义放到switch的外边。

    int n = 0;        
    switch (i)    
    {    
      case 1:    
      case 2:        
        break;    
      default:        
        break;    
    }
    
  • 相关阅读:
    移动采编app
    分布式自动化测试
    appium --log-timestamp > appium.log
    处理安卓的弹窗
    Sublime text3修改tab键为缩进为四个空格
    安卓自动化测试——rf
    敏捷软件开发
    photoshop怎么旋转图片
    thinkPHP5.0模型实现软删除
    thinkPHP5.0数据查询表达式生成技巧
  • 原文地址:https://www.cnblogs.com/jontian/p/6051264.html
Copyright © 2011-2022 走看看