java编打出5行圣诞树,求教每一步详细思想。下面是代码
希望能说的详细点,每一步的思想尽量都说明一下,新手努力学习中,万分感谢!publicclassShengDanShu2{publicstaticvoidmain(Stri...
希望能说的详细点,每一步的思想尽量都说明一下,新手努力学习中,万分感谢!
public class ShengDanShu2 {
public static void main(String[] args) {
int n=5;
int a=0;
int b=0;
for(int i=1;i <=n;i++){
if(a!=(n-i)){
System.out.print( " ");
a++;
i=i-1;
}else if(b!=(2*i-1))
{
System.out.print( "*");
b++;
i=i-1;
}else if(a==(n-i) && b==(2*i-1)){
System.out.println();
a=0;
b=0;
}
}
}
} 展开
public class ShengDanShu2 {
public static void main(String[] args) {
int n=5;
int a=0;
int b=0;
for(int i=1;i <=n;i++){
if(a!=(n-i)){
System.out.print( " ");
a++;
i=i-1;
}else if(b!=(2*i-1))
{
System.out.print( "*");
b++;
i=i-1;
}else if(a==(n-i) && b==(2*i-1)){
System.out.println();
a=0;
b=0;
}
}
}
} 展开
展开全部
按照你的要求加详细注释的圣诞树Java程序如下:(编程思想在注释中说明)
public class ShengDanShu2 {
//这个程序的编程思想是利用对for循环变量i的控制达到一层循环代替双层循环的目的
public static void main(String[] args) {
int n=5; //初始化打印圣诞树层数变量n
int a=0; //初始化打印前置空格数变量a
int b=0; //初始化打印星号数变量b
for(int i=1;i <=n;i++){ //打印n层圣诞树
if(a!=(n-i)){ //如果前置空格数不等于n-i
System.out.print(" "); //打印一个空格
a++; //前置空格数加一
i=i-1; //i变量减一 目的是固定住i变量不变直到a==n-i
}else if(b!=(2*i-1)){ //如果星号数不等于2*i-1
System.out.print("*"); //打印一个星号
b++; //星号数加一
i=i-1; //i变量减一 目的是固定住i变量不变直到b==2*i-1
}else if(a==(n-i) && b==(2*i-1)){//当以上两个条件都满足时,换行初始化a和b为0
System.out.println(); //打印换行
a=0; //对新的一行重新初始化前置空格数变量a
b=0; //对新的一行重新初始化打印星号数变量b
//这里没有控制for循环的i变量减一,因为这时i变量加一,开始新一行。
}
}
}
}
运行结果:
*
***
*****
*******
*********
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询