在前面看到有一些同学提出这样的问题:用一个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的效果就达到了。 |