for语句
for语句的一般格式为:
for (初始表达式; 条件表达式; 迭代表达式) {
语句S; //循环体
}
for语句执行时,首先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。
完成一次循环后,重新判断终止条件。
可以在for语句的初始化部分声明变量,它的作用域为整个for语句。
for语句通常用来执行循环次数确定的情况(如对数组元素进行操作)。
在初始化部分和迭代部分可以使用逗号语句来分隔多个操作。例如:
for (i=0,j=10; i<j; i++,j--) {
……
}
continue语句
continue语句用来结束本次循环, 跳过循环体中下面尚未执行的语句, 接着进行终止条件的判断, 以决定是否继续循环。
也可以用continue跳转到括号指明的外层循环中,这时的格式为
continue outerLable;
例3.4:下例分别用while、do-while和for语句实现累计求和。
public class Sum{
public static void main(String args[]){
System.out.println("/n**while statement**");
int n=10,sum=0; ∥initialization
while (n>0){ ∥termination
sum+=n; ∥body
n--; ∥iteration
}
System.out.println("sum is"+sum);
System.out.println("/n**do_while statement**");
n=0; ∥initialization
sum=0;
do{
sum+=n; ∥body
n++; ∥iteration
} while(n<=10); ∥termination
System.out.println("sum is"+sum);
System.out.println("/n**for statement**");
sum=0;
for (int i=1;i<=10;i++){
sum+=i;
}
System.out.println("sum is"+sum);
}
}
可以从中来比较这三种循环语句,从而在不同的场合选择合适的语句。
数组
数组是有序数据的集合, 数组中的每个元素具有相同的类型。数组名和下标可唯一地确定数组中的元素。数组可分为一维数组和多维数组。
一维数组
声明方式:
type arrayName[];
或 type[] arrayName;
type可以是Java中任意的数据类型, arrayName为数组名。
如: int intArray[];
声明了一个名为intArray的整型数组, 数组中的每个元素为int型数据。
Java在数组的声明中并不为数组元素分配内存, 因此 [ ] 中不用指出数组中元素个数, 即数组长度。
在访问数组的任何元素之前,我们必须为它分配内存空间, 这可用new操作符, 其格式如下:
arrayName = new type[arraySize];
其中,arraySize指明数组的长度。
如: intArray = new int[3]; 为该数组分配了3个int型整数所需的内存空间。
通常, 这两部分可以合在一起, 格式如下:
type arrayName[] = new type[arraySize];
如: int intArray[] = new int[3];
用new操作符为数组分配内存空间后,就可以引用数组中的每一个元素。数组元素的引用方式为: arrayName[index]
其中: index为数组下标,它可以为整型常数或表达式。如a[3], b(i为整型), c[6*I]等。下标从0开始, 一直到数组的长度减1。
对于上面例子中的intArray数组来说,它有3个元素,分别为:
intArray[0], intArray[1], intArray[2]。(注意: 没有intArray[3]。)
另外,与C、C++中不同,Java对数组元素要进行越界检查以保证安全性。同时,对于每个数组都有一个属性length指明它的长度。
例如: intArray.length指明数组intArray的长度。
数组的初始化
对数组元素可以按照上述的例子进行赋值。也可以在定义数组的同时进行初始化。
如: int a[]={1,2,3,4,5};
用逗号(,)分隔数组的各个元素,系统自动为数组分配一定的内存空间。
例3.5:数组的使用:
public class ArrayTest{
public static void main(String args[]){
int i;
int a[]=new int[5];
for (i=0;i<5;i++)
a=i;
for (i=a.length-1;i>=0;i--)
System.out.println("a["+i+"]="+a);
}
}
多维数组
与C、C++一样, Java中多维数组可被看作数组的数组。例如二维数组就可看成是一个特殊的一维数组, 该数组的每个元素又是一个一维数组。下面我们主要以二维数组为例来说明多维数组。
二维数组的声明方式如下:
type arrayName[][];
如: int intArray[][];
与一维数组一样,这时对数组元素也没有分配内存空间,同要使用运算符new来分配内存,然后才可以访问每个元素。
对二维数组中每个元素,引用方式为:
arrayName[index1][index2]
其中index1、index2为下标, 可为整型常数或表达式, 如a[2][3]等。数组每一维的下标也都从0开始。
在声明二维数组的同时也可对它进行初始化。
如:int a[][]={{2,3},{1,5},{3,4}};
定义了一个3×2的数组,并对每个元素赋值。
数组的越界
如果使用数组分量时,其下标超过规定的值,则会发生数组的越界。这时,虽然程序能通过编译,但在运行时会产生一个名为ArrayIndexOutOfBoundsException 的例外,所以编程时要注意检查数组下标。