玩转双层嵌套的for循环

###先是一个简单的

public class Demo {
	public static void print(int a, int b) {
		for (int i = 1; i <= a; i++) {
			for (int j = 1; j <= b; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
	public static void main(String[] args) {
		print(5, 5);
	}
}

###数组的定义: ###int[] arr=new int[]{自定义数}; int[] arr={自定义数}; ###int[] arr=new int[数字]; ###冒泡排序从小到大

public class Demo {
	public static void main(String[] args) {
		int[] arr = new int[] { 10, 51, 48, 45, 21, 34, 51 };
		for (int i = 0; i < 6; i++) {
			for (int j = 0; j < 6 - i; j++) {
				if (arr[j] > arr[j + 1]) {
					int temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;
				}
			}
		}
		for (int i = 0; i < 6; i++) {
			System.out.println(arr[i]);
		}
	}
}

···java public class Demo { public static void main(String[] args) { int[] arr = new int[] { 10, 51, 48, 45, 21, 34, 51 }; for (int i = 1; i < 8; i++) { for (int j = 0; j < 6 - i; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } for (int i = 0; i < 6; i++) { System.out.println(arr[i]); } } }

###在第二个代码中很显然外层循环变了,初始值变成1,循环次数多一次,他不影响代码的执行的,因为外层循环控制的是次数。但不知道大家有没有想过内层循环能不能变呢?答案是否定的,因为它不仅代表的是循环次数还有下面值的交换,j还代表着角标,初始化一定从0开始。
```java
public class Demo2 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] arr = new int[] { 12, 14, 8, 6, 34, 25 };
		for (int i = 0; i <= arr.length - 1; i++) {
			for (int j = i + 1; j < arr.length - 1; j++) {
				if (arr[i] > arr[j]) {
					int temp = arr[j];
					arr[j] = arr[i];
					arr[i] = temp;
				}
			}
		}
		for (int i = 0; i < 5; i++) {
			System.out.println(arr[i]);
		}
	}
	
}



###选择排序相反,外层循环中i的初始化不能改变,因为数组需要按照要求旅历一遍。

转载于:https://my.oschina.net/u/3220534/blog/830867

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值