如何实现?
- 画平行四边形
public class DrawParallelogram{
public static void main(String[] args){
for(int i=1; i<=7; i++){
//画空格
for(int k=1; k<=7-i; k++){
System.out.print(" ");
}
//画星
for(int j=1; j<=7; j++){
System.out.print("*");
}
//换行
System.out.println();
}
}
}
- 画等腰三角形
public class DrawIsoscelesTriangle{
public static void main(String[] args){
int num=7;//num表示打印行数
int centerNum=num;//centerNum表示中间数
int startNum=centerNum;//startNum表示每行开始打印的位置--->起始位置
int endNum=centerNum;//endNum表示每行结束打印的位置--->终止位置
for(int i=1; i<=num; i++){//打印行
for(int j=1; j<=2*num; j++){//打印列
//如果打印打了每行应该打印的起始位置就开始打印,到每行应该结束的终止位置
if(j>=startNum && j<=endNum){
System.out.print("*");
//不满足条件则打印空格
}else{
System.out.print(" ");
}
}
//换行之后起始位置和终止位置都会发生变化
startNum--;
endNum++;
//换行
System.out.println();
}
}
}
- 画菱形啦
public class DrawRhombus{
public static void main(String[] args){
int num=7;//打印行列数
int centerNum=num/2+1;//图形中轴线数
int startNum=centerNum;//打印初始位置
int endNum=centerNum;//打印终止位置
boolean flag=true;//设置什么时候开始打印倒三角
for(int i=1; i<=num; i++){//打印行数
for(int j=1; j<=num; j++){//打印列数
//如果满足位置区间就打印星星
if(j>=startNum && j<= endNum){
System.out.print("*");
//否则打印空格
}else{
System.out.print(" ");
}
}
//如果向左打印的位置到边了就反转
if(startNum == 1){
flag=false;
}
//反转实现
if(flag){
startNum--;
endNum++;
}else{
startNum++;
endNum--;
}
//换行
System.out.println();
}
}
}
- 空心的菱形?
由实心菱形改变行代码便可实现
j>=startNum && j<= endNum ---> j==startNum || j== endNum
public class DrawHollowRhombus{
public static void main(String[] args){
int num=7;//打印行列数
int centerNum=num/2+1;//图形中轴线数
int startNum=centerNum;//打印初始位置
int endNum=centerNum;//打印终止位置
boolean flag=true;//设置什么时候开始打印倒三角
for(int i=1; i<=num; i++){//打印行数
for(int j=1; j<=num; j++){//打印列数
//如果满足位置区间就打印星星
if(j==startNum || j== endNum){
System.out.print("*");
//否则打印空格
}else{
System.out.print(" ");
}
}
//如果向左打印的位置到边了就反转
if(startNum == 1){
flag=false;
}
//反转实现
if(flag){
startNum--;
endNum++;
}else{
startNum++;
endNum--;
}
//换行
System.out.println();
}
}
}
我想到了?
天色已晚,明日再见:)