for使用

以前学习C语言中经常遇到这种需求

/*
打印出三角形星号:
*****
****
***
**
*
或者
*
**
***
****
*****

*/

今天就用java的for循环嵌套来实现,首先我们想到

//使用for循环嵌套来实现
for(int i=1;i<=5;i++){//控制行数
    for(int j=1;j<=4;j++){//控制列数
        System.out.print("*");
    }
	System.out.println("");
}
/*会得到一个行数为5,列数为4的矩形

****
****
****
****
****


*/
既然已经得到这个重要的关系,那么我们的正三角和倒三角就可以实现了
//正三角的实现
//考虑到每行*数的数量是变化的,所以引入一个新的变量来控制它。
    int n=1;
for(int i=1;i<=5;i++){//外循环
    for(int j=1;j<=n;j++){//内循环
        System.out.print("*");
}
    n++;
	System.out.println("");
}
//倒三角的实现
//考虑到每行*数的数量是变化的,所以引入一个新的变量来控制它。
    int n=5;
for(int i=1;i<=5;i++){//外循环
    for(int j=1;j<=n;j++){//内循环
        System.out.print("*");
}
    n--;
	System.out.println("");
}

然后我们来看看for循环中continue的用法

	 for(int x=0;x<10;x++){
	if(x%2==0){
	continue;//跳过本次循环,开始下一次
	}
	System.out.println("x="+x);
	}
	/*这段代码最后作用就相当于打印出了所有的奇数
	*/


再用for语句实现一个九九乘法表
for(int i=1;i<=9;i++){//外循环
    for(int j=1;j<=i;j++){//内循环
        System.out.print(j+"*"+i+"="+j*i+"\t");//“\t”一个制表符table
}
	System.out.println("");
}

/*运行结果如下:


1*1=1	
1*2=2	2*2=4	
1*3=3	2*3=6	3*3=9	
1*4=4	2*4=8	3*4=12	4*4=16	
1*5=5	2*5=10	3*5=15	4*5=20	5*5=25	
1*6=6	2*6=12	3*6=18	4*6=24	5*6=30	6*6=36	
1*7=7	2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49	
1*8=8	2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64	
1*9=9	2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81	


*/

再实现一下选择排序,选择排序(以升序排列为例)就是先使用数组第一个数与其他所有数一一比较,如果两数相比,如果前者更大,那么就互换位置,反之则不换,一轮比较完之后,排除第一个,后边的继续用这种方法比较,直至完全比完,升序排列也就完成了。

int[] array={23,1,25,12,66,0};//随便定义了一个数组

for (int i=0; iarray[j])
		{//不引入第三个变量的方法互换,缺点:数据过大时,可能造成越界
			array[i]=array[i]+array[j];
			array[j]=array[i]-array[j];
			array[i]=array[i]-array[j];
		}
	}
}
for (int n=0; n
随后,我们实现一种常用的冒泡排序法,冒泡排序法(以降序排列为例)就是每两个相邻的数据相互比较,如果前者更大,那么就互换位置,一轮比较后,最大的也就跑到了最后边,这就是所谓的冒泡。
int[] array={23,1,25,12,66,0};//随便定义了一个数组

for (int i=0; iarray[j+1])
		{//不引入第三个变量的方法互换,缺点:数据过大时,可能造成越界
			array[j+1]=array[j+1]+array[j];
			array[j]=array[j+1]-array[j];
			array[j+1]=array[j+1]-array[j];
		}
	}
}
for (int n=0; n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值