码迷,mamicode.com
首页 > 编程语言 > 详细

第四章.流程控制与数组

时间:2017-07-28 18:28:15      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:引用类型   枚举类   ==   new   赋值   byte   枚举   字符型   images   

流程控制结构:

分支结构

  根据分支条件来选择性的执行某段代码。

  if:

  switch:

    case语句后面只能是byte、short、char、int四种整型类型,枚举类型和Java.lang.String类型(从Java 7才允许)。

    default语句不省略。

  break:

    break语句可以结束switch语句、while、do while、for语句但是结束不了if语句。

    Java中海油一种break标签,可以结束外层循环:

技术分享
 1 public class BreakTest2{
 2     public static void main(String[] args){
 3         //外层循环,outer作为标识符
 4         outer:
 5         for(int i = 0; i < 5; i++){
 6             //内层循环
 7             for(int j = 0; j < 3; j++){
 8                 System.out.println("i的值为:" + i + " j的值为:" + j);
 9                 if(j == 1){
10                     //跳出outer标签所标识的循环
11                     break outer;
12                 }
13             }
14         }
15     }
16 }
View Code

    记住:这个外层循环标签是结束外层循环,不是跳到外层循环重新执行,切记! 

    break后的标签必须是一个有效的标签,即这个标签必须在其所在循环的外层循环之前定义。

    标签和循环语句之间不要加任何语句。

 continue:

    用在for语句中。

循环结构

  根据循环条件,重复执行某段代码。

  while:

  do while:

  for:

  foreach(jdk 5):

 

数组类型:

  java的数组要求所有的数组元素具有相同的数据元素,即一个数组中只能存储一种数据类型的数据。

  数组也是一种数据类型,它本身是一种引用类型:

    int[] arrayName;//推荐使用这种

    int arrayName[];

  数组初始化:

    静态初始化:

      int[] arrayName;

      arrayName = new int[] {1, 2, 3, 4};

      或者定义初始化同时完成:

        int[] a = {5, 6, 7, 8};

    动态初始化:

      int[] arrayName = new int[5];

  数组不要同时使用静态初始化和动态初始化:

    技术分享//错误的写法,int[]是类型,中括号中不能有值。

    技术分享//错误的写法,不能同时使用静态和动态初始化数组。

    技术分享

 

  Java中各类型的默认值:

    整型(byte,short,int,long):0

    浮点型(float,double):0.0

    字符型(char):‘\u0000’

    布尔类型(boolean):false

    引用类型(类,接口,数组):null

使用数组:

  访问数组元素:

    若访问数组元素时指定的索引值小于0,或者大于等于数组长度,编译程序不会出现任何错误,但是运行时会出现异常:java.lang.ArrayIndexOutOfBoundsException:N

    (数组索引越界异常),异常信息后的 N 就是程序员试图访问的数组索引。

  所有数组都提供了一个length的属性,可以防止越界访问:

    for(int i = 0; i < arrayName.length; i++)

foreach循环:

  可以循环遍历数组和集合,使用foreach循环遍历数组和集合元素时,无需获得数组和集合的长度,无需根据索引来访问数组元素和集合元素,foreach循环自动遍历数组和集合

  每个元素:

技术分享
 1 public class ArrayTest{
 2     public static void main(String[] args){
 3         String[] books = {"疯狂Java讲义", "疯狂Android讲义"};
 4         for(String book : books){
 5             book = "疯狂Ajax讲义";
 6             System.out.println(book);
 7         }
 8         System.out.println(books[0]);
 9         System.out.println(books[1]);
10     }
11 }
View Code

  技术分享

  想一想上面的输出结果,并理解为什么会有这样的结果?

Java 8增强工具类:Arrays

Arrays类中包含了如下几个Static修饰的方法。//类中静态方法可以用 类名.方法名()调用。省去了创建对象的麻烦。

  1.int binarySearch(type[] a, type key);//使用二分法查询key元素在a数组中的索引值,若不包含key,则返回负数。a数组中元素已经按升序排列

  2.int binarySearch(type[] a, int fromIndex, int to Index, type key);//使用二分法查询key元素在a数组中的索引值,只搜索a数组中从fromIndex到toIndex索引的元素,若不

    包含key,则返回负数。a数组中元素已经按升序排列

  3.type[] copyOf(type[] original, int length);//把original数组复制成一个新数组,length是新数组的长度。若length小于original数组的长度,则新数组就是原数组前面length个

    元素;若length大于original数组的长度,则新数组的前面元素就是原数组的所有元素,后面按java默认值补充。

  4.type[] copyOfRange(type[] original, int from, int to);//和上面方法相似,但是只复制从from到to索引的元素。

  5.boolean equals(type[] a, type[] a2);//若a数组和a2数组的长度相同,且两者中元素也一一相同,该方法将返回true

  6.void fill(type[] a, type val);//把a数组的所有元素都赋值为val

  7.void fill(type[] a, int fromIndex, int toIndex, type val);//与上面方法类似,但是只将fromIndex到toIndex索引的元素赋值为val

  8.void sort(type[] a);//对a数组的数组元素进行排序,为升序

  9.void sort(type[] a, int fromIndex, int toIndex);//与上面方法相似,但是只将fromIndex到toIndex索引的元素排序,为升序

  10.String toString(type[] a);//将一个数组转换为字符串,若数组元素为0,1,2,3,4,则输出为[0, 1, 2, 3, 4],前后有中括号,中间以逗号和空格间隔。

 

第四章.流程控制与数组

标签:引用类型   枚举类   ==   new   赋值   byte   枚举   字符型   images   

原文地址:http://www.cnblogs.com/lanshanxiao/p/7248095.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!