您的位置:首页 > 编程语言 > Java开发

java基础之程序流程控制和数组

2015-05-16 13:25 253 查看
------- android培训java培训、期待与您交流!
----------

 一、程序流程控制

1.判断结构

         1.1 if语句

         三种格式:

         (1).if(逻辑表达式)

                   {

                            执行语句;

                   }

 

         (2).if(逻辑表达式)

                   {

                            执行语句;

                   }

                   else

                   {

                            执行语句;

                   }

         (3).if(逻辑表达式)

                   {

                            执行语句;

                   }

                   else if (逻辑表达式)

                   {

                            执行语句;

                   }

                   ……

                   else

                   {

                            执行语句;

                   }

if语句特点:

         a,每一种格式都是单条语句。

         b,第二种格式与三元运算符的区别:三元运算符运算完要有值出现。好处是:可以写在其他表达式中。

         c,条件表达式无论写成什么样子,只看最终的结构是否是true 或者 false;

2.选择结构

2.1 switch语句

         格式:

         switch(表达式)

         {

                   case 取值1:

                            执行语句;

                            break;

                   case 取值2:

                            执行语句;

                            break;
12fc7

                   ……

                   default:

                            执行语句;

                            break;

}

switch语句特点:

         a,switch语句选择的类型只有:byte,short,int , char。enum(JDK5),String(JDK7)

         b,case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。

         c,结束switch语句的两种情况:遇到break,执行到switch语句结束。

         d,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。

 

3.循环结构

代表语句:

         3.1 while

         while语句格式:

         while(条件表达式)

         {

                   执行语句;

         }

         1).先判断逻辑表达式的值。若=true.则执行其后面的语句,然后再次判断条件并反复执行,直到条件不成立为止;

         2).退出机制:

            a.将条件表达式置为false;

            b.使用break;强制退出;

break(跳出)和continue(继续)

         break语句:应用范围:选择结构和循环结构。

         continue语句:应用于循环结构。

注:

         a,这两个语句离开应用范围,存在是没有意义的。

         b,这个两个语句单独存在下面都不可以有语句,因为执行不到。

         c,continue语句是结束本次循环继续下次循环。

         d,标号的出现,可以让这两个语句作用于指定的范围。

         (for循环后)

 

         3.2 do while

         3.3 for

二、数组

1、一维数组

1.1

格式一:元素类型[] 数组名 = new 元素类型[元素个数或数组长度];

示例:int[] arr = new int[5];

格式二:

元素类型[] 数组名 = new 元素类型[]{元素,元素,……};

示例:

         int[] arr = new int[]{3,5,1,7};

         int[] arr = {3,5,1,7};

1.2

数组操作常见问题:

1.2.1 数组脚标越界异常(ArrayIndexOutOfBoundsException)

         int[] arr = new int[2];

         System.out.println(arr[3]);

         访问到了数组中的不存在的脚标时发生。

1.2.2 空指针异常(NullPointerException)

         int[] arr = null;

         System.out.println(arr[0]);

         arr引用没有指向实体,却在操作实体中的元素时。

1.3

方法的值传递和引用传递:

1.3.1 方法的形参如果是“基本数据类型”:

         1)、将“值”复制,传递到方法内部;

         2)、在方法内部如果更改“值”,不影响原值;

1.3.2 方法的形参如果是“引用类型”:

         1)、将“引用”复制,传递到方法内部;

         2)、此时“原引用”和“方法内部的引用”都指向同一块在“堆”中的空间;

         3)、如果在方法内部通过引用将堆中的值更改,原引用所获取的值将同时发生更改;

2、二维数组:数组中的数组

2.1 格式1:int[][]
arr = new int[3][2];

         1).定义了名称为arr的二维数组

         2).二维数组中有3个一维数组

         3).每一个一维数组中有2个元素

         4).一维数组的名称分别为arr[0],
arr[1], arr[2]

         5).给第一个一维数组1脚标位赋值为78写法是:arr[0][1]
= 78;

2.2 格式2:int[][]
arr = new int[3][];

         1).二维数组中有3个一维数组

         2).每个一维数组都是默认初始化值null

         3).可以对这个三个一维数组分别进行初始化

         arr[0] = new int[3];

         arr[1] = new int[1];

         arr[2] = new int[2];

2.3 格式3:int[][]
arr = {{3,8,2},{2,7},{9,0,1,6}};

         1).定义一个名称为arr的二维数组

         2).二维数组中的有三个一维数组

         3).每一个一维数组中具体元素也都已初始化

         4).第一个一维数组 arr[0]
= {3,8,2};

         5).第二个一维数组 arr[1]
= {2,7};

         6).第三个一维数组 arr[2]
= {9,0,1,6};

         7).第三个一维数组的长度表示方式:arr[2].length;

注意特殊写法情况:int[] x,y[]; x是一维数组,y是二维数组。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: