这段JAVA代码?详细解释,给分哦.

来源:百度知道 编辑:UC知道 时间:2024/05/29 22:41:49
public class test {
public static void main(String[] args) {
int count=0;
int i=1;
for(;i>=1;) {
if(i==1)
System.out.print (" ");
else if(i==3)
System.out.print(" ");
for(int j=1;j<=i;j++)
System.out.print("*");
System.out.println ();
count++;
if(count>=3) i-=2;
else i+=2;

}
}
}

开始count=0, i=0
然后进入外层循环,当i>=1时执行
如果i等于1或者等于3的情况下,输出一个空格
然后内循环(循环i次)
开始i=1,则输出1个*后换行(System.out.println())
count+1= 1
因为此时count>=3不成立所以i=i+2=3;

因为i=3>=1所以再次外循环
输出一个空格,(这已经是第2行了,因此第1行,第2行开头都有一个空格)
然后内循环,输出i=3个*,再换行
count=count+1=2 不大于等于3,所以i=i+2=5,

i=5>=1所以外循环
i不等于3也不等于5所以不用空格,然后输出i=5个*,然后换行。
count=count+1=3,等于,所以i=i-2=3。

然后外循环,再进入内循环,输出i=3个*,换行,
count=count+1=4,i=i-2=1

i>=1成立,继续循环,因为i=1所以输出一个空格,
然后内循环负责输出i=1个*
count=count+1=5, i=i-2=-1
因为-1<1,所以循环结束。

整个程序最终结果是(#代表空格),其实内循环就是用来输出i个*的
#*
#***
*****
#***
#*

输出结果:
#*
#***
*****
#***
#*

程序分析:
该程序由两层for循环构成:
外循环控制输出行数,循环控制器count和i;内循环控制每层输出" "和*的个数,循环控制器j:

public class test {
public static void main(String[] args) {
int count=0;
int i=1;
for(;i>=1;) { //外循环控制输出行数