continue关键字和break关键字在循环中的使用
continue: 出现在循环中表示结束本次循环继续下一次循环
break:表示结束整个循环
public class Test01 {
public static void main(String[] args) {
/**
* 测试continue关键字
* 结束本次循环,继续下一次循环
* 需求:打印1到100之间的偶数
*/
System.out.println("------------------------测试continue关键字-------------------------------");
for (int i = 1; i <=100 ; i++) {
if(i%2!=0){
continue;
}
System.out.println(i);
}
/**
* 测试break关键字
* 用于结束整个循环
* 打印1到100的数字;
* 需求是:打印到50的时候结束打印
*/
System.out.println("------------------------测试break关键字-------------------------------");
for (int i = 1; i <= 100 ; i++) {
System.out.println(i);
if(i>49){
break;//结束整个循环
}
}
/**
* 小结:continue和break只能用于循环中,其它地方不能出现,两者的区别是:
* continue用于结束本次循环,循环还要继续而break用于终止循环
*/
}
}
小结:
小结:continue和break只能用于循环中,其它地方不能出现,两者的区别是:
continue用于结束本次循环,循环还要继续而break用于终止循环
循环的嵌套
所谓循环的嵌套就是循环里面含有另外一个循环,特点是:外层循环执行一次,内层循环执行多次(一般在实际的开发环境中,循环的嵌套建议不要超过3层,如果多于3层建议使用递归算法)
package com.tedu.cn;
/**
* 测试循环的嵌套
*/
public class Test02 {
public static void main(String[] args) {
/**
* 需求:在控制台打印99乘法表
* 循环嵌套的一个典型的特点就是:外层循环执行一次,内层循环执行多次
*/
/**
* 要求: 控制台输出1到100每一个数的同时打赢100次鼠你最美
*/
for (int i = 1; i <=100 ; i++) {
System.out.println(i);
for (int j = 1; j <=5 ; j++) {
System.out.println("鼠你最美");
}
}
/**
* 控制台打印99乘法表
* 分析:99乘法表是由行和列组成,一共有9行和9列
* 首先可以使用一个for循环来控制打印的行数,在打印每一行的过程中再来确定打印多行列
* 具体打印多少列一定要理解清楚
* 1 1
* 2 2
* 3 3
* 可以总结出:打印到第几行的时候就需要打印多少列 ,假设使用 i表示行数 j表示列数,那么它们之间的关系应该为:
* j=1 i<=j
*/
System.out.println("----------------------打印99乘法表----------------------------------");
for (int i = 1; i <= 9 ; i++) { // i控制行
for (int j = 1; j <= i ; j++) { //j控制列
System.out.print(j+"x"+i+"="+i*j+"\t"); //不带换行输出(不带回车) \t表示一个制表符(相当于tab键)
}
System.out.println(); //换行
}
}
}
数组
数组的定义:
数组就是含有相同数据类型的元素的集合,数组类型的变量类型是一个引用数据类型的变量。
数组的申明:
第一种申明方式:
数据类型[] 数组名称 = new 数据类型[数组长度];
数据类型:基本数据类型和引用数组类型,注意[]不能省略
数组名称: 遵循变量的命名规则
new: 表示为数组分配内存空间的关键字
数组长度:数组元素的个数
第二种申明方式:申明的时候并且赋值
数据类型[] 数组名称={元素1,元素2。。。元素n};
数组的初始化
初始化规则
byte short int long float double char boolean
0 0 0 0 0.0 0.0 "" false
引用类型初始化为:null
数组的访问
数组的访问是按照下标索引的方式去访问的,下标索引按照0 开始一直到数组的长度-1的位置结束,可以使用数组名加上下标的形式访问数组,比如 arrs的数组 访问第一个元素是arrs[0] 第二个元素是
arrs[1] 最后一个元素是arrs[长度-1]
数组的长度
数组的长度就是数组元素的个数,数组的长度专门有一个属性表示叫做 length
访问数组的长度可以通过数组名称.length进行访问。
数组的遍历
可以通过for循环遍历数组,由于数组的访问是从下标开始访问的(0开始),刚好和for
默认的初始值0吻合,所以可以使用for遍历数组的元素同时还可以初始化数组的元素
在这里插入代码片package com.tedu.cn;
public class Test03 {
public static void main(String[] args) {
/**
* 测试数组的申明
*/
int[] arrs = new int[10]; //申明长度为10的整型数组
double[] doubles = new double[10]; //申明长度为10的double类型的数组
byte[] bs = new byte[1024]; //申明长度为1kb大小的长度
int[] numbers ={1,3,5,7,9}; //申明一个数组的同时为数组指定相应的元素
/**
* 数组的初始化规则:
* 如果申明数组的时候不给数组的元素进行初始化,那么Java程序会按照如下规则初始化:
* byte short int long 初始化为0
* float double 类型初始化为0.0
* char类型初始化为空字符 ''
* boolean 类型初始化为 false
*/
//访问numbers数组的第二个元素
System.out.println(numbers[1]);
System.out.println(arrs[1]);
System.out.println(doubles[0]);
/**
* 如果申明数组的时候没有为数组的相应的元素指定初始化值,那么
* 可以使用for循环去初始化数组的元素
*/
System.out.println("---------------------------arrs数组初始化元素之前--------------------------------------------");
//length表示数组的长度 就是数组元素的个数
for (int i = 0; i <arrs.length ; i++) {
System.out.print(arrs[i]+"\t");
}
for (int i = 0; i <arrs.length ; i++) {
arrs[i] = i+1;
}
System.out.println();
System.out.println("---------------------------arrs数组初始化元素之后--------------------------------------------");
for (int i = 0; i <arrs.length ; i++) {
System.out.print(arrs[i]+"\t");
}
}
}
数组的两大API
arrayCopy方法
该方法是一个静态方法,由System类提供,用于将指定数组的某些元素拷贝到另外一个数组。
案例代码
public class Test5 {
public static void main(String[] args) {
int[] arrays = {1, 3, 5, 7, 9, 11};
int[] arrays1 = new int[20];
System.out.println("-------------------拷贝前--------------------------");
for (int i = 0; i < arrays1.length; i++) {
System.out.print(arrays1[i] + "\t");
}
System.arraycopy(arrays, 2, arrays1, 10, 4);
System.out.println("-------------------拷贝后--------------------------");
for (int i = 0; i < arrays1.length; i++) {
System.out.print(arrays1[i] + "\t");
}
}
}
第二大API copyOf方法
该方法由Arrays类提供,主要实现一个数组的扩容。
注意:当扩容的长度大于元素组的时候则实现扩容,小于的时候实现缩容。
代码
public class Test6 {
public static void main(String[] args) {
int[] arrays = {1, 3, 5, 7, 9, 11};
/**
* 把array数组在原有的基础上扩容9个长度
*/
System.out.println("-------------------扩容前--------------------------");
for (int i = 0; i < arrays.length; i++) {
System.out.print(arrays[i] + "\t");
}
System.out.println();
arrays = Arrays.copyOf(arrays,arrays.length+9);
System.out.println("-------------------扩容后--------------------------");
for (int i = 0; i < arrays.length; i++) {
System.out.print(arrays[i] + "\t");
}
}
}