文章目录
- 一、双重循环
-
- 双重循环-----关于图形题的一些汇总
- 总结:
一、双重循环
双重循环-----关于图形题的一些汇总
先贴出代码,最后总结
public class picture {
public static void main(String[] args){
/*
*
**
***
****
*****
*****
****
***
**
*
####*
###***
##*****
#*******
*********
for (int i = 0; i <5 ; i++) {
for (int j = 0; j <= i ; j++) {
System.out.print("*");
}
System.out.println();
}
System.out.println();
for (int i = 0; i <5; i++) {
for (int j = 0; j+i <5; j++) {
System.out.print("*");
}
System.out.println();
}
for (int i = 0; i < 5; i++) {
for (int j = 0; j+i < 4; j++) {
System.out.print("#");
}
for (int j = 0; j <= 2*i; j++) {
System.out.print("*");
}
System.out.println();
}
*/
/*
*********
#*******
##*****
###***
####*
for (int i = 0; i < 5; i++) {
for (int j = 0; j < i; j++) {
System.out.print("#");
}
for (int j = 0; j+ 2*i < 9 ; j++) {
System.out.print("*");
}
System.out.println();
}
*/
/*
####*
###***
##*****
#*******
*********
#*******
##*****
###***
####*
for (int i = -4; i <= 4 ; i++) {
for (int j = 0; j < Math.abs(i); j++) {
System.out.print("#");
}
for (int j = 0; j +2*Math.abs(i)< 9; j++) {
System.out.print("*");
}
System.out.println();
}
*/
/*
*********
#*******
##*****
###***
####*
###***
##*****
#*******
for (int i = -4; i <= 4 ; i++) {
for (int j = 0; j+Math.abs(i)< 4 ; j++) {
System.out.print("#");
}
for (int j = 0; j-2*Math.abs(i)<=0 ; j++) {
System.out.print("*");
}
System.out.println();
}
*/
/*
####*
###*$*
##*$$$*
#*$$$$$*
*$$$$$$$*
for (int i = 0; i < 5; i++) {
for (int j = 0; j+i < 4; j++) {
System.out.print("#");
}
for (int j = 0; j <= 2*i; j++) {
if((j==0||j==2*i)||i == 4 ) {
System.out.print("*");
}
else{
System.out.print("$");
}
}
System.out.println();
}
*/
/*
*********
#*$$$$$*
##*$$$*
###*$*
####*
for (int i = 0; i < 5; i++) {
for (int j = 0; j < i; j++) {
System.out.print("#");
}
for (int j = 0; j+ 2*i < 9 ; j++) {
if((j == 0 || j == 8-2*i) || i == 0){
System.out.print("*");
}
else{
System.out.print("$");
}
}
System.out.println();
}
*/
/*
####*
###*$*
##*$$$*
#*$$$$$*
*$$$$$$$*
#*$$$$$*
##*$$$*
###*$*
####*
for (int i = -4; i <= 4 ; i++) {
for (int j = 0; j < Math.abs(i); j++) {
System.out.print("#");
}
for (int j = 0; j +2*Math.abs(i)< 9; j++) {
if(j == 0 || j == 8- 2*Math.abs(i)){
System.out.print("*");
}else{
System.out.print("$");
}
}
System.out.println();
}
*/
/*
*********
#*$$$$$*
##*$$$*
###*$*
####*
###*$*
##*$$$*
#*$$$$$*
*********
for (int i = -4; i <= 4 ; i++) {
for (int j = 0; j+Math.abs(i)< 4 ; j++) {
System.out.print("#");
}
for (int j = 0; j-2*Math.abs(i)<=0 ; j++) {
if(j == 0 || j == 2*Math.abs(i)||i == 4 ||i ==-4){
System.out.print("*");
}else{
System.out.print("$");
}
}
System.out.println();
}
*/
}
}
总结:
1、外循环控制行数,内循环控制列
2、内循环参数 j 判断一定会和外循环参数 i 有关
3、每一行开始增多时,j与i是正相关的;每一行开始减少时,j与i是负相关的
4、当每行增多或者减少固定倍数n时,先判断正负相关,再将外循环参数乘于n
####*
###***
##*****
#*******
*********
#*******
##*****
###***
####*
for (int i = -4; i <= 4 ; i++) {
for (int j = 0; j < Math.abs(i); j++) {
System.out.print("#");
}
for (int j = 0; j +2*Math.abs(i)< 9; j++) {
System.out.print("*");
}
System.out.println();
}
如上图所示,#是在1-5行是递减,又因为Math.abs(i)在1-5行是递减,所以j与Math.abs(i)是正相关;5-9行是递增,Math.abs(i)在5-9行是递增,所以j与Math.abs(i)是正相关。
但是*是外循环每执行一次,内循环多执行2次,所以乘于2就可以了