A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

问题是输出结果中3*4=12,和4*4=16,和别的行没有对齐,是怎么回事了?我记得老师上课讲过的,但是想不起来了。大家帮忙看下哪里的问题,谢谢!
/*
需求:在控制台打印九九乘法表(倒序版)。
*/

class JiuJiu_1
{
        public static void main(String[] args)
        {
                for (int i=9;i>=1 ;i-- )                        //外层循环,行
                {
                        for (int j=1;j<=i ;j++ )                //内层循环管,列
                        {
                                System.out.print(j+"*"+i+"="+(j*i)+" ");        //输出一个乘式
                        }
                                System.out.println();                //输出一个换行
                }
        }
}


QQ截图20160307101645.png (17.27 KB, 下载次数: 11)

QQ截图20160307101645.png

3 个回复

倒序浏览
打印时是横行输出,每个计算式之间用一个空格分隔,3*4=12,和4*4=16前面的2*4=8结果是一位数只占一个字节,而相应上面每行的结果都是两位数,占两个字节,所以从这行开始,会向前缩进一个字节。

评分

参与人数 1黑马币 +1 收起 理由
洋葱头头 + 1 很给力!

查看全部评分

回复 使用道具 举报
打印的时候使用制表符缩进就可以了,转义字符加t,“\t”

System.out.print(j+"*"+i+"="+(j*i)+"\t");  

评分

参与人数 1黑马币 +1 收起 理由
洋葱头头 + 1 很给力!

查看全部评分

回复 使用道具 举报
class JiuJiu_1
{
        public static void main(String[] args)
        {
                for (int i=1;i<=9 ;i++ )                        //外层循环,行
                {
                        for (int j=1;j<=i ;j++ )                //内层循环管,列
                        {
                                System.out.print(j+"*"+i+"="+(j*i)+"\t");        //输出一个乘式
                        }
                                System.out.println();                //输出一个换行
                }
        }
}

这么写就行了,把外循环改一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马