栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA——进阶语法——循环嵌套代码简化思路及案例、在冒泡排序中的应用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA——进阶语法——循环嵌套代码简化思路及案例、在冒泡排序中的应用

JAVA——进阶语法——循环嵌套代码简化思路及案例、在冒泡排序中的应用

例1:使用循环打印一个9*9的正方形,要求每一句输出语句只输出一个 *例2:使用循环打印一个等腰直角三角形,要求每一句输出语句只输出一个*例3:打印九九乘法表例4:使用冒泡算法对数组进行排序

例1:使用循环打印一个9*9的正方形,要求每一句输出语句只输出一个 *

简单写法,需要九次输出

public class test3 {
	public static void main(String[] args) {
		//简单写法(为了避免代码过长,此处以3*3正方形示例)
		//第一行
		System.out.print("*  ");
		System.out.print("*  ");
		System.out.print("*  ");
		System.out.println();
		
		//第二行
		System.out.print("*  ");
		System.out.print("*  ");
		System.out.print("*  ");
		System.out.println();
		
		//第三行
		System.out.print("*  ");
		System.out.print("*  ");
		System.out.print("*  ");
		System.out.println();
	}
}

使用循环,分三次输出每一行的三个*

public class test3 {
	public static void main(String[] args) {
		//使用循环,输出每一行的三个*
		//第一行
		for(int j = 1;j<=3;j++) {
			System.out.print("*  ");
		}
		System.out.println();
		//第二行
		for(int j = 1;j<=3;j++) {
			System.out.print("*  ");
		}
		System.out.println();
		//第三行
		for(int j = 1;j<=3;j++) {
			System.out.print("*  ");
		}
		System.out.println();
		
	}
}

使用循环嵌套,一次输出三行的三个*

public class test3 {
	public static void main(String[] args) {
		//每一行的代码重复度极高,同样可以使用循环来表示。
		//即上面的代码可以进一步简化为如下所示循环嵌套
		for(int i = 1;i<=3;i++) {
			for(int j = 1;j<=3;j++) {
				System.out.print("*  ");
			}
			System.out.println();
		}
	}
}

以上三种方法的运行结果一致,如下图所示:
代码得到了简化。

例2:使用循环打印一个等腰直角三角形,要求每一句输出语句只输出一个*

简单写法,需要九次输出

public class test3 {
	public static void main(String[] args) {
		//简单写法
		//第一行
		System.out.print("*  ");
		System.out.println();
		
		//第二行
		System.out.print("*  ");
		System.out.print("*  ");
		System.out.println();
		
		//第三行
		System.out.print("*  ");
		System.out.print("*  ");
		System.out.print("*  ");
		System.out.println();
	}
}

使用循环,分三次输出每一行的*

public class test3 {
	public static void main(String[] args) {
		//使用循环,输出每一行的三个*
		//第一行
		for(int j = 1;j<=1;j++) {
			System.out.print("*  ");
		}
		System.out.println();
		//第二行
		for(int j = 1;j<=2;j++) {
			System.out.print("*  ");
		}
		System.out.println();
		//第三行
		for(int j = 1;j<=3;j++) {
			System.out.print("*  ");
		}
		System.out.println();
	}
}

使用循环嵌套,一次输出三行的*

public class test3 {
	public static void main(String[] args) {
		//每一行的代码重复度极高,同样可以使用循环来表示。
		//即上面的代码可以进一步简化为如下所示循环嵌套
		for(int i = 1;i<=9;i++) {
			for(int j = 1;j<=i;j++) {
				System.out.print("*  ");
			}
			System.out.println();
		}
	}
}

以上三种方法的运行结果一致,如下图所示:

例3:打印九九乘法表

简单写法,需要四十五次输出

public class test3 {
	public static void main(String[] args) {
		//简单写法,输出前三行的内容
		//第一行
		System.out.print("1x1=1 ");
		System.out.println();
		
		//第二行
		System.out.print("1x2=2 ");
		System.out.print("2x2=4 ");
		System.out.println();
		
		//第三行
		System.out.print("1x3=3 ");
		System.out.print("2x3=6 ");
		System.out.print("3x3=9 ");
		System.out.println();
		//以此类推,余下6行略...
		
	}
}

使用循环,分九次输出每一行的内容

public class test3 {
	public static void main(String[] args) {
		//使用循环,输出前三行的内容
		//第一行
		for(int j = 1;j<=1;j++) {
			System.out.print(j+"x"+1+"="+(j*1)+" ");
		}
		System.out.println();
		//第二行
		for(int j = 1;j<=2;j++) {
			System.out.print(j+"x"+2+"="+(j*2)+" ");
		}
		System.out.println();
		//第三行
		for(int j = 1;j<=3;j++) {
			System.out.print(j+"x"+3+"="+(j*3)+" ");
		}
		System.out.println();
		//以此类推,余下6行略...
	}
}

使用循环嵌套,一次输出九行的内容

public class test3 {
	public static void main(String[] args) {
		//每一行的代码重复度极高,同样可以使用循环来表示。
		//即上面的代码可以进一步简化为如下所示循环嵌套
		for(int i = 1;i<=9;i++) {
			for(int j = 1;j<=i;j++) {
				System.out.print(j+"x"+i+"="+(j*i)+" ");
			}
			System.out.println();
		}
	}
}

以上三种方法的运行结果一致,如下图所示:

例4:使用冒泡算法对数组进行排序

使用冒泡排序算法通过四轮比较进行手动排序

public class test3 {
	public static void main(String[] args) {
		int[] arr = {3,5,4,2,8};
		
		//使用冒泡排序算法手动排序(将数组每个位置的元素从前到后进行两两比较,大的往后放)
		//本次案例中定义的数组只有五个元素,因此比较四轮之后就可以完成排序,思路拆解如下:
		//第一轮(比较位置0和位置1,位置1和位置2,位置3和位置3,位置3和位置4)
		//本轮可以通过比较把最大的数字放到位置4
		for (int i = 0; i < arr.length-1; i++) {
			if(arr[i]>arr[i+1]) {
				int temp = arr[i];
				arr[i] = arr[i+1];
				arr[i+1] = temp;
			}
		}
		//第二轮(比较位置0和位置1,位置1和位置2,位置3和位置3)
		//本轮可以通过比较把最大的数字放到位置3
		for (int i = 0; i < arr.length-2; i++) {
			if(arr[i]>arr[i+1]) {
				int temp = arr[i];
				arr[i] = arr[i+1];
				arr[i+1] = temp;
			}
		}
		//第三轮(比较位置0和位置1,位置1和位置2,位置3和位置3)
		//本轮可以通过比较把最大的数字放到位置2
		for (int i = 0; i < arr.length-3; i++) {
			if(arr[i]>arr[i+1]) {
				int temp = arr[i];
				arr[i] = arr[i+1];
				arr[i+1] = temp;
			}
		}
		//第四轮(比较位置0和位置1,位置1和位置2)
		//本轮可以通过比较把最大的数字放到位置1,第0位的数字是四轮排序中最小的数字,排序完成
		for (int i = 0; i < arr.length-4; i++) {
			if(arr[i]>arr[i+1]) {
				int temp = arr[i];
				arr[i] = arr[i+1];
				arr[i+1] = temp;
			}
		}
	}
}

使用循环嵌套,简化以上四轮循环代码如下

public class test3 {
	public static void main(String[] args) {
		for (int j = arr.length-1; j >= 0 ; j--) {
			for (int i = 0; i < j; i++) {
				if(arr[i]>arr[i+1]) {
					int temp = arr[i];
					arr[i] = arr[i+1];
					arr[i+1] = temp;
				}
			}
		}
		//运行一下查看排序结果
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}
}

以上两种方法的运行结果一致,如下图所示,完成排序需求:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/785387.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号