黑马程序员技术交流社区

标题: 九九乘法表编写遇到的一个问题 [打印本页]

作者: love~陌    时间: 2014-3-17 11:45
标题: 九九乘法表编写遇到的一个问题
  1. class Demo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 for (int x=1;x<=9;x++ )
  6.                 {
  7.                         for (int y=1;y<=x ;y++ )
  8.                         {
  9.                                 sop(y+"*"+x+"="+y*x+'\t');
  10.                         }
  11.                         sop(""+'\n');
  12.                 }
  13.         }
  14.         public static void sop(Object obj)
  15.         {
  16.                 System.out.print(obj);
  17.         }
  18. }
复制代码
第11行是
sop(""+'\r');
输出结果是
1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81

第11行是
sop(""+'\n');
输出结果是

第11行是
sop(""+'\r');
输出结果是
1*1=1
1*2=2   2*2=4
1*3=3   2*3=6   3*3=9
1*4=4   2*4=8   3*4=12  4*4=16
1*5=5   2*5=10  3*5=15  4*5=20  5*5=25
1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36
1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49
1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64
1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81

求解释


作者: 歌尽繁华    时间: 2014-3-17 11:58
三个都是一样的结果啊
作者: vtming    时间: 2014-3-17 12:01
有木有说清楚?我输出结果怎么一样??????
\r回到行首,\n到下一行
一般输出程序时,看不到明显的差别。
作者: 李猛    时间: 2014-3-17 13:15
windows里面换行是\r\n,linux里面换行是\n。我没看明白你的意思,就简单说这几句吧,希望对你有帮助
作者: 汗血黑马    时间: 2014-3-17 14:19
你的写法不对,九九乘法表的输出语句应该是:System.out.print(y+"*"+x+"="+y*x+"\t");这里print打印关键字没有换行标识"ln",接着后面才能接换行语句:System.out.println();只有一个作用就是换行。首先你得先记住格式,再去学习其他的方法。
作者: sunshine9091    时间: 2014-3-17 17:50
楼上正解!
作者: liushui12344    时间: 2014-3-17 18:46
Systenm.out.print(y+"*"+x+"="+y*x+"\t");这个是写在内循环中的,输出乘法表但是不换行的输出。System.out.println();这是写在外循环中,表示换行。\r与\n在windows中表示的含义是一样的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2