Java范例集锦(三)
范例1. 循环体的过滤
public class CycleFilter { public static void main(String[] args) { // TODO Auto-generated method stub String[] array=new String[] {"白鹰","丹顶鹤","白鹭","鹦鹉","黄鹂","老鹰","乌鸦","喜鹊","老鹰", "布谷鸟","老鹰","麻雀","老鹰","百灵鸟"}; //创建数组 System.out.println("在我的花园里有很多鸟类,但是最近来了几只老鹰,请帮我把它抓走。"); int eagleCount=0; for(String str:array) { //foreach遍历数组 if(str.equals("老鹰")) { //如果遇到老鹰 System.out.println("发现一只老鹰,已装到笼子里。"); eagleCount++; continue; //中断循环 } System.out.println("搜索鸟类,发现了:"+str); //否则输出数组元素 } System.out.println("一共捉到了:"+eagleCount+"只老鹰"); } }
执行结果如下:
在我的花园里有很多鸟类,但是最近来了几只老鹰,请帮我把它抓走。
搜索鸟类,发现了:白鹰
搜索鸟类,发现了:丹顶鹤
搜索鸟类,发现了:白鹭
搜索鸟类,发现了:鹦鹉
搜索鸟类,发现了:黄鹂
发现一只老鹰,已装到笼子里。
搜索鸟类,发现了:乌鸦
搜索鸟类,发现了:喜鹊
发现一只老鹰,已装到笼子里。
搜索鸟类,发现了:布谷鸟
发现一只老鹰,已装到笼子里。
搜索鸟类,发现了:麻雀
发现一只老鹰,已装到笼子里。
搜索鸟类,发现了:百灵鸟
一共捉到了:4只老鹰
范例2. 使用for循环输出空心的菱形
输出空心菱形图案,在很多种场合碰到过类似案例,此范例利用for循环的嵌套使用,示例如下:
public class DiamDemo { public static void main(String[] args) { // TODO Auto-generated method stub printRhomebus(10); } public static void printRhomebus(int size) { if(size % 2==0) { size++; //计算菱形大小 } for(int i=0;i<size/2+1;i++) { for(int j=size/2+1;j>i+1;j--) { System.out.print(" "); //输出左上角位置的空白 } for(int j=0;j<2*i+1;j++) { if(j==0||j==2*i) { System.out.print("*"); //输出菱形上半部边缘 }else { System.out.print(" "); } } System.out.println(" "); } for(int i=size/2+1;i<size;i++) { for(int j=0;j<i-size/2;j++) { System.out.print(" "); //输出菱形左下角空白 } for(int j=0;j<2*size-1-2*i;j++) { if(j==0||j==2*(size-i-1)) { System.out.print("*"); //输出菱形下半部边缘 }else { System.out.print(" "); } } System.out.println(" "); } } }
执行结果如下(空字符串的大小决定菱形的宽窄,上示例两个空格键):
* * * * * * * * * * * * * * * * * * * *
范例3. 使用for循环输出杨辉三角
杨辉三角形由数字排列,可以把它看作一个数字表,其基本特征是两侧数值均为1,其他位置的数值是其正上方的数值与左上角数值之和。示例代码如下:
public class YhTriangle { public static void main(String args[]) { int triangle[][]=new int[12][]; //创建二维数组,并确定一维的长度 for(int i=0;i<triangle.length;i++) { //遍历二维数组的第一层 triangle[i]=new int[i+1]; //初始化第二层数组的大小 for(int j=0;j<=triangle[i].length-1;j++) { //遍历第二层数组 if(i==0||j==0||j==triangle[i].length-1) { //将两侧的数组元素赋值为1 triangle[i][j]=1; }else { //其他数值通过计算 triangle[i][j]=triangle[i-1][j]+triangle[i-1][j-1]; } System.out.print(triangle[i][j]+"\t"); //输出数组元素 } System.out.println(); } } }
执行结果是:
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 1 10 45 120 210 252 210 120 45 10 1 1 11 55 165 330 462 462 330 165 55 11 1
范例4. 数值
4.1. 合法的声明数值及初始化示例
int arr[]; //声明int型数组 String[] str; //声明String型数组 int[] arr=new int[]{3,6,7,10,22};//声明数值并初始化值 int arr2={2,3,5,8}; int month[]=new int[12]; //声明数值并分配内存 int myarr[][]; //声明int型二维数组 myarr=new int[3][6]; //为二维数组每一维分配相同内存 //分别为每一维单独分配内存 myarr=new int[3][]; myarr[0]=new int[3]; myarr[1]=new int[4]; myarr[2]=new int[5]; int myarr2[][]={{10,12},{20,22}}; //初始化二维数组
4.2. 求一维数组各元素之和
一维数组每个元素都有自己的值,使用for循环根据数组的下标,将数组的每个元素的值相加求和。示例如下:
public class SumNum { public static void main(String[] args) { // TODO Auto-generated method stub int[] num= {12,13,22,33,35,36}; //创建并初始化一维数组num int sum=0; //进行累加求和的变量sum,并赋初值为0 for(int i=0;i<6;i++) { //通过for循环遍历数组 if(i==5) { //判断数组的下标是否是5 System.out.print(num[i]+"="); //数组元素的下标是5,输出等号 }else { System.out.print(num[i]+"+"); //否则输出加号 } sum=sum+num[i]; //进行累加求和 } System.out.println(sum); //输出和 } }
执行其结果是:12+13+22+33+35+36=151
4.3. 规则二维数组示例
对于整型数组,创建成功之后系统会自动赋值给数组中每个元素初始化值0.
public class Matrix { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("*******输出一个3行5列且所有元素都是0的矩陈*******"); int a[][]=new int[3][5]; //定义二维数组,并默认每一个元素都为0 for(int i=0;i<a.length;i++) { for(int j=0;j<a[i].length;j++) { //循环遍历数组中的每个元素 System.out.print(a[i][j]+" "); } System.out.println(); //输出空格 } System.out.println("*******输出初始化的二维数组中的元素*******"); int b[][]= {{11,12,13,14}, {21,22,23,24}, {31,32,33,34}}; for(int i=0;i<b.length;i++) { for(int j=0;j<b[i].length;j++) { System.out.print(b[i][j]+"\t"); } System.out.println(); } } }
执行结果是:
*******输出一个3行5列且所有元素都是0的矩陈******* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 *******输出初始化的二维数组中的元素******* 11 12 13 14 21 22 23 24 31 32 33 34
4.4. 三维数组
三维数组的声明与一维、二维数组类似,初始化三维数组时,由3层大括号进行初始化。示例如下:
public class ThirdArr { public static void main(String[] args) { // TODO Auto-generated method stub int arr[][][]=new int[][][] { {{10,20,30},{40,50,60}}, {{11,21,31},{41,51,61}}, {{12,22,32},{42,52,62}} }; //创建三维数组 for(int i=0;i<arr.length;i++) { //遍历数组 System.out.println("三维数组的第"+(i+1)+"个元素是一个"+arr[0].length+"维数组,内容如下:"); for(int j=0;j<arr[0].length;j++) {//遍历数组 for(int k=0;k<arr[0][0].length;k++) { System.out.print(arr[i][j][k]+"\t"); } System.out.println(); } } } }
执行结果是:
三维数组的第1个元素是一个2维数组,内容如下: 10 20 30 40 50 60 三维数组的第2个元素是一个2维数组,内容如下: 11 21 31 41 51 61 三维数组的第3个元素是一个2维数组,内容如下: 12 22 32 42 52 62