如何正确的使用语句块

 更新时间:2013年05月23日 10:10:44   作者:  
本篇文章是对正确使用语句块进行了详细的分析介绍,需要的朋友参考下
犹记得在初看C,C++和Java的编程书籍时,上面就有介绍语句块,但当时甚是不理解什么是语句块。《代码大全》中也有讲说要把相似功能的语句组织到一起形成语句块,然后与其他语句块用空行分隔。但这只是在人的理解上的语句块,并非是真的程序语言意义上的语句块。
程序上的定义,在我的理解来看应该是有着相同的变量作用域的相关一组语句的集合,看起来就是应该用{}括起来的,比如控制结构中的逻辑。我认为最关键的一点就是变量作用域,也就是说,如果能用同一个局部变量,那么就是程序意义上的语句块。来看个例子:
复制代码 代码如下:

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case MENU_GOTO_FILEANT:
            Intent i = new Intent();
            i.setClass(this, FileAntActivity.class);
            startActivity(i);
            break;
        case MENU_TEST_LINEARLAYOUT:
            i.setClass(this, LinearLayoutTest.class);
            startActivity(i);
            break;
        default:
            break;
        }
        return true;
    }

对于第二个case语句,仍可以使用前面case所定义的变量,所以整个switch() {}内都是一个语句块。
但如果给每个case语句加上语句块标志,就不一样了:
复制代码 代码如下:

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case MENU_GOTO_FILEANT: {
            Intent i = new Intent();
            i.setClass(this, FileAntActivity.class);
            startActivity(i);
            break;
        }
        case MENU_TEST_LINEARLAYOUT: {
            Intent i = new Intent();
            i.setClass(this, LinearLayoutTest.class);
            startActivity(i);
            break;
        }
        default:
            break;
        }
        return true;
    }

加上了{}就把二个case语句分隔了开来,形成了二个语句块,它们有各自的变量作用域,互不影响,即使用名字相同,或再次定义也无妨。
说明这些的目的就在于,要尽可能多的使用{}以形成真正的语句块,最大的好处在于它能形成变量作用域,避免变量的作用域过大,即提高了可读性,也减少了出错的可能。

相关文章

  • C++ 二维数组传参的四种方式

    C++ 二维数组传参的四种方式

    C++的二维数组里面,通过用数组名传参,传过去后数组名会退化成一个一维数组指针,所以C++的函数参数不能像C语言一样去写,本文主要介绍了C++ 二维数组传参的四种方式,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • 贪吃蛇C语言代码实现(难度可选)

    贪吃蛇C语言代码实现(难度可选)

    这篇文章主要为大家详细介绍了贪吃蛇C语言代码实现,游戏难度可供选择,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 如何使用C语言实现细菌的繁殖与扩散

    如何使用C语言实现细菌的繁殖与扩散

    这篇文章主要为大家详细介绍了C语言实现细菌的繁殖与扩散,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • 简单了解设计模式中的装饰者模式及C++版代码实现

    简单了解设计模式中的装饰者模式及C++版代码实现

    这篇文章主要介绍了简单了解设计模式中的装饰者模式及C++版代码实现,ConcreteComponent的引用(指针)也可以达到修饰的功能,需要的朋友可以参考下
    2016-03-03
  • C语言 模拟实现strlen函数详解

    C语言 模拟实现strlen函数详解

    在 C 语言 中我们要获取 字符串 的长度,可以使用strlen 函数,strlen 函数计算字符串的长度时,直到空结束字符,但不包括空结束字符,因为 strlen 函数时不包含最后的结束字符的,因此一般使用 strlen函数计算的字符串的长度会比使用 sizeof 计算的字符串的字节数要小
    2022-04-04
  • C/C++中指针的深入理解

    C/C++中指针的深入理解

    指针在 C\C++ 语言中是很重要的内容,并且和指针有关的内容一向令初学者头大,这篇文章主要给大家介绍了关于C/C++中指针的相关资料,需要的朋友可以参考下
    2021-07-07
  • C语言零基础精通变量与常量

    C语言零基础精通变量与常量

    这篇文章主要为大家详细介绍了C语言的变量和常量,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-04-04
  • 《C++ primer plus》读书笔记(三)

    《C++ primer plus》读书笔记(三)

    本文是C++读书笔记系列的第三篇,是读完《C++ primer plus》一书第九、十两章记录下来的笔记,学习C++的同学可以看看参考下。
    2014-10-10
  • C/C++ Qt数据库SqlRelationalTable关联表详解

    C/C++ Qt数据库SqlRelationalTable关联表详解

    这篇文章主要介绍了QT中SqlRelationalTable关联表组件的使用,文中代码对我们的学习和工作具有一定价值,感兴趣的朋友可以了解一下
    2021-12-12
  • C语言实现数字连连看

    C语言实现数字连连看

    这篇文章主要为大家详细介绍了C语言实现数字连连看游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09

最新评论