嵌套循环(Nesting Loop):
1、几重循环看的是循环嵌套的层级,而不是循环的个数;
2、在语法上循环嵌套的层次是可以无限的,但是在现实开发当中,最多达到三重循环;嵌套层次过多会导致程序流程控制力度下降,算法可读性降低;
3、嵌套循环的关键,在于搞清楚循环执行的顺序。 外层循环执行1次,内层循环执行1圈; 内层循环可以访问外层循环的循环控制变量; 外层不能访问内层;
4、循环控制变量命名,最外层的用i,第二层用j,第三层用k, 依次类推,这是“约定俗成的规范”;同层循环可以使用同命的循环控制变量;
5、break只能跳出本层循环
数组:
集合:把一组元素批量放在一起,进行集中合并操作。 数组是集合中一种结构,且是最简单原始的一种。几乎所有的编程语言,在语法设计的时候直接自带数组。
数组在结构上的特点:
1、只能存放同一数据类型的元素;
2、所有元素是存放在连续内存地址空间中的;
3、数组空间大小一旦确定,不可更改(不能加也不能减)。
数组申明的语法:
数据类型[] 变量名; 这里的变量名就是数组的名字 -- 标准
数据类型 变量名[]; 这是Java为照顾C程序员早期提供的兼容语法 -- 非标准
数组初始化语法一:已知要放入数组的元素个数和值是多少
int[] scores = {56,670,-78,189,90};
double[] rainFall = {123.4,56,78.98};
String[] names = {"zhang3","li4","wang5","zhao6"};
数组初始化语法二:只知道要放入数组的元素个数
这里的10和5,我们称为"数组的长度"。
int[] ages = new int[10];
double[] heights = new double[5];
String[] nameArray = new String[10];
System.out.println(nameArray[3]);
采用第二种初始化语法的时候,数组中的每个元素都会被自动初始化。
其中: 1、如果元素是基本数据类型,那么赋初始值0;
int的就是0
double/float就是0.0
char就是ASCII码 为0的字符
boolean就是false
2、如果元素是引用数据类型,那么赋初始值null
如何操作数组当中的元素?
语法: 数组名[下标]
下标:相当于数组元素在数组中的编号。这个编号无需我们指定,而是数组在生成的时候就自带了的,英文"index"; 数组的下标都是从0开始的,然后到数组长度 - 1。
我们完全可以把”数组名[下标]“ 这种语法当成是一个变量来使用,可以取出它的值,也可以给它赋值。
如果在访问数组元素的时候没有正确指定下标,那么编译不会报错,但运行时会报异常(ArrayIndexOutofBoundsException - 数组下标越界异常)。 异常一旦发生,我们又没有学习使用异常处理机制,那么我们的程序会在这句报异常的代码处中断掉。
所以,大家在处理数组下标的时候一定要做好控制。 为了对最大下标进行良好的控制,Java中的数组提供了一个叫做length的属性,可以获取该数组的长度。
经验: 在循环操作数组元素的时候,循环结束的条件不要写常量,写成"数组.length"。