重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
按照你的要求加详细注释的圣诞树Java程序如下:(编程思想在注释中说明)
创新互联2013年至今,是专业互联网技术服务公司,拥有项目做网站、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元荔波做网站,已为上家服务,为荔波各地企业和个人服务,联系电话:13518219792
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变量加一,开始新一行。
}
}
}
}
运行结果:
*
***
*****
*******
*********
打印 * 号的时候不要用println,用print就行了
println是打印后换行,print则是直接打印
您好!我没有懂您为什么这么写,我写了一个简单易懂的,代码如下:
System.out.println(" *");
System.out.println(" * *");
System.out.println(" * *");
System.out.println(" * *");
System.out.println("*********");
System.out.println("* *");
System.out.println("* *");
System.out.println("* *");
System.out.println("* *");
格式有问题。。。,您看图吧:
朋友 你说的最好一句话我没明白?
你能具体说下吗?最好弄个图片。
我跟你说一下思路:就是用for循环就可以.
---给你答案 供你参考,仓促写的:
public class ChristmasTree {
int x = 2;
int i = 0;
public void tree() {
for(i=0; i3; i++) {
for(int j=x; j=0; j--) {
System.out.print(" ");
}
x--;
for(int k=0; k=i; k++) {
System.out.print("*"+" ");
}
System.out.println();
}
}
public static void main(String args[]) {
new ChristmasTree().tree();
}
}