为了账号安全,请及时绑定邮箱和手机立即绑定

这个代码的执行流程请大神讲一下。我老感觉每一行都只能输出一个*。详细一点谢谢

public class HelloWorld {

    public static void main(String[] args) {

        

System.out.println("打印直角三角形");

        

// 外层循环控制行数

for (int i = 1; i<=3;i++) {

            

// 内层循环控制每行的*号数

// 内层循环变量的最大值和外层循环变量的值相等

for (int j = 1;j<=i;j++              ) {

                

System.out.print("*");

}

            

// 每打印完一行后进行换行

System.out.println();

}

}

}


正在回答

5 回答

for(int j = 1;j<=i;j++)这个循环完后,j进行了重新赋值,所以到第二行的时候,i = 2,j = 1,循环一次,打印一次*,自加1,j = 2,j<=i,又打印一次*,第三次一样

2 回复 有任何疑惑可以回复我~
#1

洛辰m 提问者

每一次J都是1,然后重新赋值啊,谢谢
2018-09-12 回复 有任何疑惑可以回复我~
#2

qq_轻描丶幸福的旋律_1 回复 洛辰m 提问者

谢谢楼主 我也是不懂这个点啊!
2018-11-16 回复 有任何疑惑可以回复我~
#3

qq_慕函数2369942

没明白为什么内层循环结束后 j进行重新赋值 不应该是j++,所以j变成2了吗?
2019-05-31 回复 有任何疑惑可以回复我~

第一行打印一个*,第二行打印2个*,第三行打印3个*,当i=1时,执行内循环一次,当i=2时执行内循环2次,当i=3时执行内循环为3次,每执行一次打印一个*


0 回复 有任何疑惑可以回复我~

这是我进步的证明啊!(脸好疼!)

当i=1时,j赋值等于1,条件成立,输出第1行的1个*,然后j自增1,条件不成立,退出循环。

*

当i=2时,j重新赋值为1,条件成立,输出第1个*,然后j自增1,条件成立,进行循环,输出第2个*,然后j再自增1,条件不成立,退出循环。

**

以此类推

***

****

*****

(如有错漏欢迎指正)


0 回复 有任何疑惑可以回复我~

不好意思,我上面的话不要放在心上,直接退出循环了。

i是行数,j是一行几个*,

当i=1时,j赋值等于1,条件成立,输出第1行的1个*,然后j自增1

当i=2时,j自增后等于2,条件成立,输出第2行的2个*,然后j再自增1

以此类推

*

**

***

****

*****

(如有错漏欢迎指正)


0 回复 有任何疑惑可以回复我~

把j<=i换成j==i就行了,因为j<=i的话第二次就是i=2  j=1

因为j=1满足j<=1的条件所以直接进行循环了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这个代码的执行流程请大神讲一下。我老感觉每一行都只能输出一个*。详细一点谢谢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信