流程控制 数组
特殊流程控制语句
- break 语句
– break语句用于终止某个语句块的执行
{ ……
break;
……
}
– break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块
label1: { ……
label2: { ……
label3: { ……
break label2;
……
}
}
}
- continue 语句
– continue语句用于跳过某个循环语句块的一次执行
– continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环
- continue语句用法举例1
public classContinueTest {
public static void main(String args[]){
for(int i = 0; i < 100; i++) {
if(i%10==0)
continue;
System.out.println(i);
}
}
}
特殊流程控制语句说明
- break只能用于switch语句和循环语句中。
- continue 只能用于循环语句中。
- 标号语句必须紧接在循环的头部。标号语句不能用在非循环语句的前面。
- break和continue之后不能有其他的语句,因为程序永远不会执行break 和 continue之后的语句。
数组概述
数组是多个相同类型数据的组合,实现对这些数据的统一管理
数组属引用类型,数组型数据是对象(Object),数组中的每个元素相当于该对象的成员变量
数组中的元素可以是任何数据类型,包括基本类型和引用类型
数组元素的引用
一维数组声明
Java语言中声明数组时不能指定其长度(数组中元素的数)
例如: int a[5]; //非法
• Java中使用关键字 new 创建数组对象
• 定义并用运算符 new 为之分配空间后,才可以引用数组中的每个元素;
• 数组元素的引用方式:数组名[数组元素下标]
– 数组元素下标可以是整型常量或整型表达式。如a[3] , b[i] , c[6*i];
– 数组元素下标从0开始;长度为n的数组合法下标取值范围: 0 - n-1;如int a[]=new int[3]; 可引用的数组元素为a[0]、a[1]、a[2]
• 每个数组都有一个属性 length 指明它的长度,例如:a.length 指明数组 a 的长度(元素个数)
• 数组如果是引用类型,它的元素相当于类的成员变量,因此数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化。例如:
• public class Test {
• public static void main(Stringargv[]){
• int a[]= new int[5];
• System.out.println(a[3]); //a[3]的默认值为0
• }
• }
//注意: 若没有为数组变量分配指向的内存空间, 就调用其属性, 会在运行时发生 "空指针异常"
//若访问数组的下标超过合法范围, 则在运行时会抛出 ArrayIndexOutOfBoundsException
- Java中多维数组不必须是规则矩阵形式
int[][] tt =new int[4][];
tt[0] = newint[2];
tt[1] = newint[4];
tt[2] = newint[6];
tt[3] = newint[8];
实例:打印杨辉三角
package java_2;
publicclass HelloWord{
public static void main(String [] args){
//作业: 使用二维数组打印 10 行的杨辉三角, 杨辉三角实际上是二项式展开式的系数
/**
*1 (a+b)^0
*1 1 (a+b)^1
*1 2 1 (a+b)^2
*1 3 3 1 (a+b)^3
*1 4 6 4 1
*1 5 10 10 5 1
*
* ...
*
* 1. 什么是杨辉三角: 二项式展开式的系数
* 2. 为什么使用的是二维数组: 因为杨辉三角由行和列组成, 每一行是一个一维数组, 而杨辉三角则是由一维数组组成的数组, 即二维数组.
* 3. 杨辉三角的具体特点:
* 3.1 第 n 行有 n 个元素(n >= 1)
* 3.2 每一行的第一个元素和最后一个元素都是 1
* 3.3 不等于 1 的那些元素的值为上一行的对应列和对应列的前一列的元素的和.
*
*/
//1. 先声明一个二维数组: 二维数组有 10 个元素
int [][] yh = newint[10][];
//2. 对二维数组的元素进行初始化: 第 i 个元素(i 从 0 开始) 为长度为 i + 1 的一维数组.
for(inti = 0; i < yh.length; i++){
//二维数组的每一个元素是一维数组, 而一维数组是引用类型, 其默认值为 null
//System.out.println(yh[i]);
yh[i] = newint[i + 1];
//3. 对具体的每一个元素进行初始化(是 1 的元素): yh[i][0]= 1, yh[i][i] = 1
yh[i][0] = 1;
yh[i][i] = 1;
//4. 对具体的每一个元素进行初始化(不是 1 的元素): yh[i][j]= yh[i-1][j] + yh[i-1][j-1];
// (i > 1 && j > 0 && j < i)
if(i > 1){
for(intj = 1; j < i; j++){
yh[i][j] = yh[i-1][j] + yh[i-1][j-1];
}
}
}
//打印
for(inti = 0; i < yh.length; i++){
for(intj = 0; j < yh[i].length; j++){
System.out.print(yh[i][j] + "\t");
}
System.out.println();
}
}
}