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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王舜民 中级黑马   /  2012-9-7 22:12  /  2146 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王舜民 于 2012-9-8 08:22 编辑

再做99乘法的时候。以前都忽略了,以为是自己拼写错误,一个同学问我。这是为什么?

如果上面一个print写成print,下面一个写成println就不会报错。百思不得其解
上面println,下面print就会报错:实际参数与形式参数不同
class Chengfabiao
{


        public static void main(String[] args)
        {
                int i;
                int j;
                for (i=1;i<=9 ;i++ )
                {
                        for (j=1;j<=i ;j++ )
                        {
                                System.out.print(j+"*"+i+"="+(i*j)+"\t");
                        }
                        System.out.print();//报错
                        
                }
                 
        }
}

6 个回复

倒序浏览
class Chengfabiao
{


        public static void main(String[] args)
        {
                int i;
                int j;
                for (i=1;i<=9 ;i++ )
                {
                        for (j=1;j<=i ;j++ )
                        {
                                System.out.print(j+"*"+i+"="+(i*j)+"\t");
                        }
                        System.out.print(" ");
                       
                }
                 
        }
}

这样也行
回复 使用道具 举报
查看api,PrintStream没有提供print()方法,也就是说要调用print方法 ,必须带参数才行,jdk类库没有提供无参的print方法
回复 使用道具 举报
如果上面一个print写成print,下面一个写成println就不会报错。百思不得其解
上面println,下面print就会报错:实际参数与形式参数不同
class Chengfabiao
{


        public static void main(String[] args)
        {
                int i;
                int j;
                for (i=1;i<=9 ;i++ )
                {
                        for (j=1;j<=i ;j++ )
                        {
                                System.out.print(j+"*"+i+"="+(i*j)+"\t");
                        }
                        System.out.print();//报错 //不是不能写两个System.out.print(),而是你这一句没有起到任何的作用,这个是语句打印输出的作用,但是里面却没有任何的参数或是字符串,那为什么加ln就会不会报错呢?那是因为它起到了换行的作用。
                       
                }
                 
        }
}

回复 使用道具 举报
出错的原因很简单,print()不符合java语法,它就只执行一个功能,那就是输出,但是你没有给它定义输出的对象,所以报错!
print()它不像println(),println()它有两个功能,输出和换行,可以两者都执行,也可以只执行换行!println()相当于print("\n")!
回复 使用道具 举报
本帖最后由 杨习平 于 2012-9-7 22:49 编辑

public static void main(String[] args)
{        
  class Chengfabiao

         {
                        int i;
                        int j;
                        for (i=1;i<=9 ;i++ )
                        {
                                for (j=1;j<=i ;j++ )
                                {
                                        System.out.print(j+"*"+i+"="+(i*j)+"\t");
                                }
                                System.out.print("\n");//你将输出语句放在外层for循环里面,目的是为了起到换行,而你输出print()是空的,而且楼上也提到了,printStream没有提供给空构造,jvm不能识别,每当循环当这个语句前就会编译出错,问我的是将‘\n’作为参数穿进去,必须要有参数
                                
                        }
                        
                }
        }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马