慕雪7050015
2020-02-28 14:34
不应该是三行吗?
j=0开始,才能保证横行和竖行相等
把第二个for循环里面的j<i,改成j<=i就行了。
如果是j<i,则当i=1放入训练的时候,j<i并不满足,因为你的j初始值就是1,所以只执行了System.out.println这个换行符。没发现你第一行空了吗。
j = 0
是三行没有错,不过你的第二个for哪里出错了 j<i 应改成j<=i 就可以完美解决
首先,你这个代码的确是有3行的,当你把println()改为println("1")时,运行的结果就是这样:
1
*1
**1
接下来跟你解释一下吧,for(int i= 1,i <4;i++),当i等于1满足小于四的条件时并不会马上自增,而是等循环完一次时再进行自增,所以内循环里第一次的i还是为1,这时不满足j=1 <1的条件,所以第一次第一行是不会打印出“*” 来的,以此类推,所以其实是有三行,但是你只看见了两行,你只需要把j<i改为j<=i就可以了
int j = 1; j < i + 1; j++
里面的循环应该是 j<=i i=3的时候只会循环 1,2
Java入门第一季(IDEA工具)升级版
1165537 学习 · 17586 问题
相似问题