Java基础——流程控制语句和数组

目录

分支语句 

if-else条件判断结构

switch-case选择结构

循环语句 

for 循环

while 循环

do-while 循环

关键字break和continue的使用

数组

初始化方式

数组内存分析

Arrays数组工具类 

 数组常见的异常


分支语句 

  • if-else条件判断结构

结构:

if (条件表达式1) {
      语句块1;
} else if (条件表达式2) {
      语句块2;
}
...
}else if (条件表达式n) {
     语句块n;
} else {
      语句块n+1;
}

  • switch-case选择结构

结构:

switch(表达式){
    case 常量值1:
        语句块1;
        //break;
    case 常量值2:
        语句块2;
        //break; 
    // ...
   [default:
        语句块n+1;
        break;
   ]
}

使用注意点:

  • switch(表达式)中表达式的值必须是下述几种类型之一:byte,short,char,int,枚举 (jdk 5.0),String (jdk 7.0);

  • case子句中的值必须是常量,不能是变量名或不确定的表达式值或范围;

  • 同一个switch语句,所有case子句中的常量值互不相同;

  • break语句用来在执行完一个case分支后使程序跳出switch语句块;

    如果没有break,程序会顺序执行到switch结尾;

  • default子句是可选的。同时,位置也是灵活的。当没有匹配的case时,执行default语句。

循环语句 

  • for 循环

语句结构:

for (①初始化部分; ②循环条件部分; ④迭代部分){
             ③循环体部分;

  • while 循环

语句结构:

①初始化部分
while(②循环条件部分){
    ③循环体部分;
    ④迭代部分;
}

  • do-while 循环

语句结构:

①初始化部分;
do{
    ③循环体部分
    ④迭代部分
}while(②循环条件部分); 

注意点:

do-while结构的循环体语句是至少会执行一次,这个和for和while是不一样的

  • 关键字break和continue的使用

适用范围   在循环结构中使用的作用  相同点
break switch-case、循环结构 一旦执行,就结束(或跳出)当前循环结构 此关键字的后面,不能声明语句
continue循环结构 一旦执行,就结束(或跳出)当次循环结构  此关键字的后面,不能声明语句

数组

  • 初始化方式

  • 静态初始化

例:int[] arr = new int[]{1,2,3,4,5};或 int[] arr = {1,2,3,4,5};

  • 动态初始化

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

  • 数组内存分析

说明:

  • 创建数组对象会在内存中开辟一整块连续的空间。占据的空间的大小,取决于数组的长度和数组中元素的类型。

  • 数组中的元素在内存中是依次紧密排列的,有序的。

  • 数组,一旦初始化完成,其长度就是确定的。数组的长度一旦确定,就不能修改。  

例子: 

public static void main(String[] args) {
      int[] arr = new int[3];
      System.out.println(arr);
}

  • Arrays数组工具类 

 java.util.Arrays类即为java提供操作数组的工具类,包含了用来操作数组的各种方法。

比如:

数组转字符串:

  • static String toString(int[] a)
  • static String toString(Object[] a)

数组排序

  • static void sort(int[] a):将a数组按照从小到大进行排序
  • static void sort(int[] a, int fromIndex, int toIndex) :将a数组的[fromIndex, toIndex)部分按照升序排列
  • static void sort(Object[] a) :根据元素的自然顺序对指定对象数组按升序进行排序。
  • static <T> void sort(T[] a, Comparator<? super T> c) :根据指定比较器产生的顺序对指定对象数组进行排序。

数组元素的二分查找

  • static int binarySearch(int[] a, int key) 、static int binarySearch(Object[] a, Object key)

数组的复制

  • static int[] copyOf(int[] original, int newLength) :根据original原数组复制一个长度为newLength的新数组,并返回新数组

  • static <T> T[] copyOf(T[] original,int newLength):根据original原数组复制一个长度为newLength的新数组,并返回新数组

  • static int[] copyOfRange(int[] original, int from, int to) :复制original原数组的[from,to)构成新数组,并返回新数组

  • static <T> T[] copyOfRange(T[] original,int from,int to):复制original原数组的[from,to)构成新数组,并返回新数组

比较两个数组是否相等

  • static boolean equals(int[] a, int[] a2) :比较两个数组的长度、元素是否完全相同

  • static boolean equals(Object[] a,Object[] a2):比较两个数组的长度、元素是否完全相同

填充数组

  • static void fill(int[] a, int val) :用val值填充整个a数组

  • static void fill(Object[] a,Object val):用val对象填充整个a数组

  • static void fill(int[] a, int fromIndex, int toIndex, int val):将a数组[fromIndex,toIndex)部分填充为val值

  • static void fill(Object[] a, int fromIndex, int toIndex, Object val) :将a数组[fromIndex,toIndex)部分填充为val对象

  •  数组常见的异常

  • ArrayIndexOutOfBoundsException:数组角标越界
  • NullPointerException:空指针异常
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值