For循环复杂练习

for是循环当中经常用到的一个结构,练熟了才可以。

练习-需求描述:

在控制台打印以下形式的字符:

* * * * *

 * * * *

  * * *

   * *

    *

思路,首先分析需求的规律

  1、首先分析需求要求的字符的数据结构特点,他的最小单位是什么,这里是"* "一个星号+一个空格

  2、默认情况下,控制台打印字符都是靠左侧垂直排列的,但是现在第二行,第三行都不是靠左侧排列的,如果想让他按照需求排列的话,那么就得在*之前加" “(空格)补齐。

  3、这里为了方便看,我们先把空格用"-"来表示,那么以上需求就变成了:

* * * * *

-* * * *

--* * *

---* *

----*

  4、现在我们要打印的就有两个结构了,一个是"* "结构,另外一个就是"-"结构,并且"-"要在"*"号之前打印;

    现在总共有五行,由此我们可以确定,外层循环需要循环五次。内层循环第一个打印"-"符号的是递增的,并且是从0开始递增的。但是打印"* "的这个是逐个递减的,也就是说初始值应该是最大值,并且比较的时候要用 > 大于号做比较

  代码:

  

class ForFor{

	public static void main(String[] args) {
		


		for (int x = 1; x<=5 ; x++ ) {
			
			for(int y = 1; y<x  ; y++){

				System.out.print("-");

			}

			for (int i = 5 ; i>=x ; i-- ) {

				System.out.print("* ");
				
			}

			System.out.println();

		}

	}

}

  此时输出的是:

  此时我们把"-"替换为" "空格之后就得到了最终的答案。

For循环小结:

1、for循环的嵌套循环的时候一定要确定,谁在变,谁再跟着谁变,最多的时候变成什么最低的变成什么。比如上述的例子,*最多输出5次,最少输出1次其次就是谁跟着谁变,顶层的连个子循环都是围绕着第一个循环的x在变化等到这些确定之后再根据最多、最少的关系,就能够确定嵌套循环该如何去写了。

2、for循环还有while循环的区别,在for循环当中我们必须指定循环的次数,也就是说在for循环当中循环的次数是我们之前就确定的。只有当循环次数确定的时候才能够使用for循环,相反while循环结构就没有这个约束。这个也就是选择使用for 或者 while循环时的依据。

原文地址:https://www.cnblogs.com/sunchuanzhen/p/3317775.html