for循环语句中的金字塔题

代码如下:classforjina{publicstaticvoidmain(String[]args){intn=Integer.parseInt(args[0]);f... 代码如下:
class forjina{
public static void main(String[] args){
int n=Integer.parseInt(args[0]);
for (int i=1; i<=n;i++){
for(int k=n;k>=i; k--){
System.out.print(" ");}
for (int j=1;j<=2*i-1;j++){
System.out.print("*");}
System.out.println();
}
}
}
显示效果如下:
D:\java\lesson>java forjina 5
*
***
*****
*******
*********
有个问题不明白:for (int j=1;j<=2*i-1;j++)语句中"j"其实就是"="2*i-1,可以显示出相应的"*"的个数,为什么要用"<=",还有j++是自加1,可是这个"*"符号是每次加2个,怎么理解?请哥哥们指教.
展开
 我来答
大卫老孙
推荐于2016-12-01 · TA获得超过189个赞
知道小有建树答主
回答量:266
采纳率:0%
帮助的人:171万
展开全部
这个程序其实不难理解
i是行数的循环,j是显示*号的循环

你可以自己试着代入几个数,比如
当i=1的时候,j最大等于1,也就表示第一行输出一个*
当i=2的时候,j最大等于3,也就表示第一行输出三个*
第3行........5个*
...
...
...
可以推出,第N行,就要输出2*N-1个*
其中每次循环都是int j=1;j<=2*i-1;j++,说的就是输出*的个数,从第一个一直到第2*i-1个,执行完了以后然后跳出j的for循环,然后i++,再次进入到j的for循环.直至i<=N;for循环才结束.

我表达的不是很清楚.自己再领悟一下,同样的道理,还有比如如何输出

*
***
*****
*******
.....
***************
这样的图形,或者是倒三角的.
都得去推算他的规律.
百度网友66a8d48e5
2008-08-14 · TA获得超过7687个赞
知道大有可为答主
回答量:3002
采纳率:12%
帮助的人:3922万
展开全部
你的问题,唉!

循环的条件是真时进入,如果你将j<=2*i-1;改为j=2*i-1时,请问第二次循环时,也就是当i等于2时,测试条件是真是假?这是一个条件句,不知道你怎么理解的?建议你看一个循环结构。
第二个问题,j是自加1,System.out.print("*");也是只打了一个,但当i=2时,for循环变成for(j=1;j<3;j++),你说他会打几个?i=3时呢?循环的嵌套而已,当然每次比原来多打了两个!但不是加两个,因为for本身再次循环时已经与上次无干了!

嵌套循环是内层退出时,再进行外层,内层循环还要再次循环的!至到外层循环结束!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式