黑马程序员技术交流社区
标题:
关于嵌套for循环,用单for来表示的一点体会
[打印本页]
作者:
吴小东
时间:
2012-6-13 13:04
标题:
关于嵌套for循环,用单for来表示的一点体会
在前面看到有一些同学提出这样的问题:用一个for语句来打印如下图形
/* 54321
* 5432
* 543
* 54
* 5
* */
大家首先想到的用嵌套for,就是两个for循环来控制输出,外循环控制循环次数,内循环控制打印个数如下:
public static void twoFor()
{
for (int i=0;i<5 ;i++ )
{
for (int j=5;j>i ;j-- )
{
System.out.print(j);//打印每一行的数值
}
System.out.println();//打印一次换行
}
}
复制代码
下面我们思考一下单for实现方式,既然不能用嵌套循环,那么我们想到改变循环变量的初始值来达到我们想要的效果 for(int i = 0 ;i <5 ; i++) 在循环体中改变 i 的初始值来控制循环的次数
单for实现方法如下:
public static void oneFor()
{
for (int i=5,j=1;i>=j ;i-- )
{
System.out.print(i);
if (i==j)
{
i=6;//因为回到i--时候要-1所以定义为6
j++;
System.out.println();
}
}
}
复制代码
那么到这里单for实现嵌套for的效果就达到了。
作者:
史卜坤
时间:
2012-6-13 16:47
本帖最后由 史卜坤 于 2012-6-13 16:49 编辑
用for打印图形,来点好玩的。
*
* *
* * *
* * * *
* * *
* *
*
public class Tu{
public static void main(String[] args){
for(int i=0;i<5;i++){
for(int k=i;k<4;k++){
System.out.print(" ");//输出4个空格,第一次要输出三次依次递减
}
for(int j=0;j<i;j++){
System.out.print("* ");//输出一个“*”和空格,第一次输出一个*,依次递增
}
System.out.println();//输出换行
}
for(int i=0;i<4;i++){
for(int k=0;k<i+1;k++){
System.out.print(" ");//第一次输出一个空格,依次递增
}
for(int j=i;j<3;j++){
System.out.print("* ");//输出*和空格,第一次输出3个,依次递减
}
System.out.println();//输出换行
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2