for循环
虽然所有循环结构都可以用 while 或者 do…while表示,但 Java 提供了另一种语句 —— for 循环,使一些循环结构变得更加简单。
在一般情况下,都可以使用for循环代替while循环。
for循环执行的次数是在执行前就确定的。
for(初始化; 布尔表达式; 更新) {
//代码语句 }
关于 for 循环有以下几点说明:
- 最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
- 然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
- 执行一次循环后,更新循环控制变量。
- 再次检测布尔表达式。循环执行上面的过程。
class Client5 {
public static void main(String[] args) {
int total = 0;
for (int currentNum = 1; currentNum <= 100; currentNum++) {
total += currentNum;
}
System.out.println(total);
}
}
数组类型
1.数组也是一种数据类型
Java的数组要求所有的数组元素都是相同的数据类型。
一旦数组的初始化完成,数组在内存中所占据的空间将被固定,因此,数组的长度是不可变的,数组是定长的。
Java里数组可以存储基本数据类型,也可以存储引用数据类型。
2.数组定义的语法
type[] arrayName;
type arrayName[];
// 这种定义方式更加普遍,而且符合一般的思维方式
String[] students;
int[] codes;
String students[];
因为第一种语法的定义方式,更加符合我们对数组这种数据类型的普遍理解,所有很多的语言已经不支持第二种数组的定义模式,比如c#等。
3.数组的初始化
Java语言中,必须先初始化数组,然后才可以使用。所谓初始化过程,就是对数组的元素分配内存空间,并且为每个数组元素赋初始值。
数组的初始化方式有两种方式:
静态初始化:在数值初始化的时候,程序显式地指定每个数组元素的初始值,由系统来决定数组的长度。
动态初始化:程序只指定数组的长度,由系统为每个数组元素分配初始值。
- 静态初始化
语法:
arrayName = new Type[]{element, element, element…… }
静态初始化的简写:
arrayName = {element, element, element…… }
示例:
class Client4 {
public static void main(String[] args) {
//System.out.println("Hello World!");
// 这种定义方式更加普遍,而且符合一般的思维方式
String[] students;
students = new String[]{"闻鸿","徐亮","张旷怡","刘杰","李欣荣","袁赛荣","陈杰","张亮亮","袁凯华","刘晨","陆佳南","张中天","姚亚峰","刘晓卫"};
int[] codes;
codes = new int[]{1,2,3,4,5,6,7,8,9,10,11,12,13,14};
String students[];
double[] ds = {1.0,2.0,3.0};
}
}
2.动态初始化
语法:
arrayName = new Type[length];
对于动态初始化的数组,系统按照规则给每个元素分配默认值。
- 基本数据类型中,byte/short/int/long,默认值为0;
- 基本数据类型中,float/double,默认值0.0;
- 基本数据类型中字符型char,默认值‘\u0000’;
- 基本数据类型中boolean类型,默认值false;
- 所有的引用数据类型默认值为null;
示例:
int[] a = new int[5];
for (int i : a) {
System.out.println(i);
}
String[] s = new String[5];
for (String i : s) {
System.out.println(i);
}
4.使用数组
在数组使用过程中,最常用的就是访问数组元素和给数组元素赋值。
访问数组元素在变量后面紧跟[],方括号里是索引值。
Java语言中,数组索引都是从0开始,最后一个数值元素的索引是数组长度-1。
如果在使用数组的时候,不在合法的数组长度内,则会报java.lang.ArrayIndexOutOfBoundsException。
数组对象提供length,获取数组的长度,一般用在对数组的元素进行循环遍历。
示例:
class Client4 {
public static void main(String[] args) {
String[] students;
students = new String[]{"闻鸿","徐亮","张旷怡","刘杰","李欣荣","袁赛荣","陈杰","张亮亮","袁凯华","刘晨","陆佳南","张中天","姚亚峰","刘晓卫"};
System.out.println(students[3]);
students[3] = "张三";
System.out.println(students[3]);
System.out.println(students.length);
//students[100] = "1";
int[] codes;
codes = new int[]{1,2,3,4,5,6,7,8,9,10,11,12,13,14};
for (int i = 0; i < students.length; i++) {
System.out.println("学号:" + codes[i] + ",姓名:" + students[i]);
}
}
}