问题1:这是个两重循环,第一句 for (int i = 1; i <= 9; i++) 意思是对1到9的每个i,执行第二句;第二句for (int j = 1; j <= i; j++) 的意思是,对小于等于i的每个j,执行后面的内容。于是当i == 1 的时候,第二句执行了一遍;当i == 2的时候,第二句执行了两遍。。。
问题2:java里字符串可以直接用+号相连,所以+ “ ”的意思就是在最后加上一个空格,也就是多打一个空格的作用。
问题3:println 的作用是打印完参数传入的字符串后再打一个回车换行。“abcd”表示字符串常量abcd,“”表示字符串常量“空串”。println("") 的作用就是打印一个空串(什么都不打)然后再打一个回车换行.
我来给你解答吧:
1. 你明白 for (int j = 1; j <= i; j++) { }这里的意思吗?这里重点是" y<=i " 我从全局来说吧 外面的for循环是用来控制行数的 for (int i = 1; i <= 9; i++){} 说明有9行 里面的for循环是用来控制"每行显示多少列"的 ,比如:第3行,即i=3;运行到for (int j = 1; j <= i; j++) { }这里 说明这个循环要循环3次 即第3行有3列 按System.out.print(j + "*" + i + "=" + i * j + " "); 这个规则来输出的话 刚好是
1*3=3 2*3=6 3*3=9 你看见他们中间都有空格没?这就是你的第二个问题了
2. 后面加上+" "就是让他们有间隙 否则 结果会这样1*3=32*3=63*3=9
3. 最后一句 System.out.println(""); 它是换行的意思 即每次循环完for (int j = 1; j <= i; j++) { }都要换行一次 因为前面打印数据的时候使用了System.out.print(j + "*" + i + "=" + i * j + " ") ,print这里没有加ln,没加的话意思是说打印数据不换行 所以在后面才要加上 你可以把它删除试下 全部数据都在一行 根本不会出现9行了
问题1:当在执行第一个for循环的时候,i=1,进入第二个循环,j=1,打印出1*1,然后在循环的时候,不满足j<=i,所以跳出循环,然后第一个循环i继续自增。但是在进入第二个循环的时候,j又变成1了,所以就有了1*2=2
问题2:在第二个循环里面最后的一个空格,是在你每打印出一个表达式以后就会空出一格。如:1*1=1 1*2=2 如果没有空格,就会连续打印。如:1*1=11*2=2
问题3:最后一句打印空格,就是在第二个循环完以后,跳出循环,再去执行第一个循环的时候就会打印空格,即换行。如:
1*1=1(这时j2*1=2 2*2=4
我的个神啊,就是循环次数的问题嘛,内循环从一开始直到等于i.其中I等于几内循环就输出几次的嘛
第一:再加for循环
第二:连接符
第三:输出换行空格作用