• 流程控制和数组


      不管是哪种编程语言,都有两种流程控制结构:分支结构和循环结构。分支结构用于实现根据条件来选择性的执行某段代码,循环结构则用于实现根据循环条件重复执行

    某段代码。Java也提供了这两种流程控制结构,Java提供了if和switch两种分支语句;提供了while、do while和for三种循环语句。还有一种用于遍历的循环,使用foreach循环可以遍历集合、数组的元素。

    一、分支结构

    1.1if条件语句  

      if语句使用布尔表达式或布尔值作为分支条件来进行分支控制。

    使用if...else语句时,一定要处理包含范围更小的情况。

    1.2switch分支语句

      switch语句后面的控制表达式的数据类型只能是byte、short、int、long四种整数类型,在Java7之后能够支持string和枚举类型;使用switch分支语句时需要注意到case后代码块的break。

    二、循环结构

      循环语句在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体。当反复执行这个循环体,需要在合适的时候把循环条件改为假,从而把循环结束,否则

    循环将一直执行下去,形成死循环。

    2.1while循环语句

    while(test_expression){

      statement(iteration_statement)

    }

    2.2do while循环语句

    do{

      statement;(iteration_statement)

    }while(test_expression)

    2.3for循环

    for([init_statement];[test_expression];[iteration_statement]){

      statement;

    }

    2.4控制循环结构

    使用break结束循环:某些时候需要在某种条件出现时强行终止循环,而不是等到循环条件为false的时候才终止循环。break用于结束一个循环,跳出循环体。不管是哪种循环,一旦在循环体中

    遇到了break,系统将完全结束该循环,开始执行循环后的代码。

    使用continue忽略本次循环剩下语句:continue是忽略本次循环剩下语句,接着开始下一次循环,并不会终止循环;而break是终止循环本身。

    使用return结束方法:并不是专门用于结束循环的,return的功能是结束一个方法。

    三、数组

       数组时编程语言中常见的一种数据结构,可以用于存储数据,每个数组元素放一个数据,通常可以通过数组元素的索引去访问数组元素,也可以为数组元素赋值和取出数组元素的值。

     

     3.1数组特性

      数组也是一种类型:Java数组的数组元素具有相同的数据类型,一个数组里只能存储一种数据类型的数据,不能存储多种数据类型的数据。一旦数组的初始化完成,数组在内存中所占的空间将被

    固定下来,因此数组的长度将不可改变。即使把某个数组元素的数据清空,但它所占的空间依然被保留,依然属于该数组,数组的长度依然不变。

      定义一个数组:type [ ] arrayName;数组是一种引用类型的变量,所以使用它定义一个变量时,仅仅表示定义了一个引用变量(也就是定义了一个指针,但是没有任何意义)。这个引用变量还没有指向

    任何有效的内存,因此定义数组时不能指定数组的长度。只有对数组进行初始化后才可以使用。

      数组的初始化:Java语言中数组必须先初始化,才可以使用。初始化就是为数组的数组元素分配内存空间,并且为每个数组元素赋初始值。

    数组的初始化有两种方式:

    1. 静态初始化:初始化时由程序员显式的为每个数组元素赋予初始值,由系统决定数组长度。arrayname=new type[]{element1,element2,element3};type[] arrayname={element1,element2};

            2.动态初始化:初始化程序员只指定数组长度,由系统为每个数组元素分配初始值。arrayname=new type[length];

    3.2foreach循环

      foreach循环是用来循环遍历集合和数组的,十分方便。不用获取数组和集合长度,无须根据索引来访问数组元素和集合元素,foreach循环自动遍历数组和集合的每个元素。

    语法格式如下:for(type variableName: array|collection){

      自动迭代访问每个数组元素...

    }

    三、深入了解数组

       数组是一种引用数据类型,数组引用变量只是一个引用,数组元素和数组变量在内存里是分开存放的。下面将介绍数组在内存中的运行机制。

    3.1内存中的数组

      数组引用变量只是一个引用,这个引用变量可以指向任何有效的内存,只有当引用变量指向有效的内存时,才可以通过数组变量访问数组元素。

      实际的数组对象被存储在堆内存中·;如果引用该数组对象的数组引用变量时一个局部变量,那么它存储在栈内存中。数组在内存中的存储如图所示,

      如图要访问堆内存中的数组元素时,则程序中只能通过p[index]的形式。也就是说,数组引用变量时访问堆内存中数组元素的根本方式。

      当一个方法执行时,每个方法都会创建自己的内存栈,在这个方法中声明的变量都会放到这个栈内存中,随着方法执行的结束,这个方法的内存栈也就会自然被销毁。所有方法定义的

    局部变量都是放到栈内存中;在程序中创建一个对象后,这个对象被保存到运行时数据区中,这个区域就叫做堆内存。只有当堆内存没有一个引用变量去指向它时,系统的垃圾回收机制或

    将这个内存区回收。

      定义并初始化一个数组后,在内存中分配了两个空间,一个用于存放数组的引用变量在栈内存中,一个用于存放数组的本身在堆内存中。引用变量在栈内存中就像是一个地址,通过访问

    这个地址就可以访问到地址上的东西堆内存,访问到其中的数据。没有这个引用变量的地址时,是无法访问到堆内存的,只有通过数组引用变量才能访问到。

       

     

  • 相关阅读:
    reids学习redis的五种基本数据类型
    CentOS下配置Java开发环境安装redis
    CentOS下配置Java开发环境安装Tomcat
    如何去除掉inlineblock元素之间的默认间距
    js按值传递还是按引用传递?
    overflow: hidden用法,不仅仅是隐藏溢出
    关于WinForm中的DataGridView控件显示数据字典的解决方案。
    C#中对Winform中的DataGridView的控制技巧。(单独控制某单元格的按钮不显示、某单元格的ReadOnly)
    改进版网页表格的合并单元格(支持不连续的列合并)
    [共享]MT随机算法(符合正态分布的随机算法)
  • 原文地址:https://www.cnblogs.com/yfstudy/p/9464253.html
Copyright © 2020-2023  润新知