黑马程序员技术交流社区

标题: 为什么不能连续用两个print? [打印本页]

作者: 王舜民    时间: 2012-9-7 22:12
标题: 为什么不能连续用两个print?
本帖最后由 王舜民 于 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();//报错
                        
                }
                 
        }
}
作者: 王舜民    时间: 2012-9-7 22:16
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(" ");
                       
                }
                 
        }
}

这样也行
作者: 舒远    时间: 2012-9-7 22:25
查看api,PrintStream没有提供print()方法,也就是说要调用print方法 ,必须带参数才行,jdk类库没有提供无参的print方法
作者: 范泰洋    时间: 2012-9-7 22:37
如果上面一个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就会不会报错呢?那是因为它起到了换行的作用。
                       
                }
                 
        }
}


作者: 王晓明    时间: 2012-9-7 22:38
出错的原因很简单,print()不符合java语法,它就只执行一个功能,那就是输出,但是你没有给它定义输出的对象,所以报错!
print()它不像println(),println()它有两个功能,输出和换行,可以两者都执行,也可以只执行换行!println()相当于print("\n")!
作者: 杨习平    时间: 2012-9-7 22:47
本帖最后由 杨习平 于 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’作为参数穿进去,必须要有参数
                                
                        }
                        
                }
        }




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