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

多重循环中for语句的循环条件为啥不能用j==i

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

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

System.out.print("*");

}

System.out.println();

}

请问第二句为啥不能是for (int j = 1; j==i;j++   ) 呢?

正在回答

7 回答

可以这么写,但是逻辑上就是只有j=i=1执行一次打印*

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

aswindy

后面的j初始值为1,i直接与其不相等,就没有后面的j++的执行
2016-10-21 回复 有任何疑惑可以回复我~
#2

NothingOonYou 提问者 回复 aswindy

请问j=i=1之后,不是就直接j自加一,然后判断不与i相等才跳出循环的吗?
2016-10-21 回复 有任何疑惑可以回复我~
#3

aswindy 回复 NothingOonYou 提问者

嗯,是的,跳出后,i=2和第三次的i=3都不满足j=i所以内层循环不会执行。
2016-10-21 回复 有任何疑惑可以回复我~
#4

NothingOonYou 提问者 回复 aswindy

这里我有点不明白,j自加等于2后,跳出,这时i自加也为2,开始第二次大循环,怎么到了里面就不想等了呢?是我理解的执行顺序出错了?
2016-10-21 回复 有任何疑惑可以回复我~
#5

aswindy 回复 NothingOonYou 提问者

里面那个循环j重新初始化是从j=1开始,所以j==i是不成立的,进入不了循环,直接跳出。
2016-10-21 回复 有任何疑惑可以回复我~
#6

aswindy 回复 NothingOonYou 提问者

i=2的时候,里面j是从1开始,明显二者不等,循环不执行,j++也不会执行;i=3的时候也是如此。
2016-10-21 回复 有任何疑惑可以回复我~
查看4条回复

了解了,感谢各位的热心回答(某位除外)。

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

我刚学 就懂  你还不懂 真笨  比我还笨,大笨狗


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

外循环执行一次,内循环执行一圈,如果将i值赋值给j那么j的值会随着外循环的变化而变化。在java中这种情况是不运行的。

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

假设i=2,j=1的情况,第二个for循环就是for(j=1;j==2;j++),很明显这个就运行不了。

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

你这个代码运行的结果是一个直角三角形,因此在进行第二行输出两个**时,若判断条件为j==i.即2==1,不符合条件,因此不进入内层循环也就无法输出*了

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

j==i之后,j>i也满足情况,所以j会一直加下去

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

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165453    人
  • 解答问题       17585    个

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

进入课程

多重循环中for语句的循环条件为啥不能用j==i

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