JAVA 高手进(关于九九乘法表问题) 20
publicclasschengfabiao{publicstaticvoidmain(String[]args){System.out.println("九九乘法表:"...
public class chengfabiao {
public static void main(String[] args) {
System.out.println("九 九 乘 法 表: ");
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + i * j + " ");
}
System.out.println("");
}
}
}
里面的 for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
我只理解可以1*1=1 2*2=4 3*3=9一直到9*9=81这个我理解,但下面的1*2=2或者3*4=12是怎么输出来的我不懂。这个是问题1,请详细点,谢谢!
问题2
System.out.print(j + "*" + i + "=" + i * j + " ");这句里最后一个+ " "起什么作用?
问题3 最后一句 System.out.println("");
起什么作用? 展开
public static void main(String[] args) {
System.out.println("九 九 乘 法 表: ");
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + i * j + " ");
}
System.out.println("");
}
}
}
里面的 for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
我只理解可以1*1=1 2*2=4 3*3=9一直到9*9=81这个我理解,但下面的1*2=2或者3*4=12是怎么输出来的我不懂。这个是问题1,请详细点,谢谢!
问题2
System.out.print(j + "*" + i + "=" + i * j + " ");这句里最后一个+ " "起什么作用?
问题3 最后一句 System.out.println("");
起什么作用? 展开
5个回答
展开全部
问题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("") 的作用就是打印一个空串(什么都不打)然后再打一个回车换行.
问题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 (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(这时j<i,跳出第二个循环,打印出空格,换行,执行第一个循环。)
2*1=2 2*2=4
问题2:在第二个循环里面最后的一个空格,是在你每打印出一个表达式以后就会空出一格。如:1*1=1 1*2=2 如果没有空格,就会连续打印。如:1*1=11*2=2
问题3:最后一句打印空格,就是在第二个循环完以后,跳出循环,再去执行第一个循环的时候就会打印空格,即换行。如:
1*1=1(这时j<i,跳出第二个循环,打印出空格,换行,执行第一个循环。)
2*1=2 2*2=4
追问
“但是在进入第二个循环的时候,j又变成1了,所以就有了1*2=2”为什么J又变成1了?它不是也有J++吗?
追答
已经跳出循环了,所以j又重新赋值了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我的个神啊,就是循环次数的问题嘛,内循环从一开始直到等于i.其中I等于几内循环就输出几次的嘛
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一:再加for循环
第二:连接符
第三:输出换行空格作用
第二:连接符
第三:输出换行空格作用
追问
我是说那冒号,谢谢
追答
一句话都要有冒号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询