Java语句中的两种输出语句println和printf有什么区别

 我来答
五加零等于几
推荐于2017-09-21 · TA获得超过365个赞
知道小有建树答主
回答量:97
采纳率:0%
帮助的人:98.9万
展开全部
print\println\printf的区别

print将它的参数显示在命令窗口,并将输出光标定位在所显示的最后一个字符之后。

println 将它的参数显示在命令窗口,并在结尾加上换行符,将输出光标定位在下一行的开始。

printf是格式化输出的形式。

下在举个例子:

package other;

public class TestPrint {

public static void main(String[] args) {

int i = 4;

double j = 5;

System.out.print("用print输出i:"+ i);

System.out.println( "用println输出i:"+ i);

System.out.printf("i的值为%d,j的值为%f", i,j);

}

}

运行结果为

用print输出i:4用println输出i:4

i的值为4,j的值为5.000000

可以看到,用print输出i后,没有换行,用println输出的结果直接在print输出语句后面,而输出println后换行了,所以用printf输出时,在第二行

输出。

我们再来看printf

“i的值为%d,j的值为%f”这个字符串中的"%d"变为i的值了,而"%f"变为了j的值了!

这里,"%d"的意思是一个int值的占位符,"%f"为一个double 或float值的点位符,这个变量的参数在后面提供。注意的是实参名必须按顺序排

。不然就会错了。而且类型也要相符。如果我们把语句改为

System.out.printf("i的值为%d,j的值为%f", j,i);//i和j位置反了

这时就有错了因为"%d"对应的参数变为j,"%f"对应的变为i了,而j是double的,与"%d"是int形的不一致。所以有错了。

还有"%s"是一个字符串值的点位符的意思。"%c"是一个字符值的点位符的意思。

可能读者还会问为什么j输出变成了5.000000?那是因为double是默认有6位小数的(这个可能和系统电脑有关,有的不是6位吧)但是如果你想

只要输出两位小数行不行?可以啊!只要改下语句就行了!

System.out.printf("i的值为%d,j的值为%.2f", i,j);

这里的"%.2f"的意思是输出两位小数点。如果想输出三位那就"%.3f"。

说到这里你会发现原来printf也很有用的。这样可以控制输出的格式。

再学多点知识吧,将代码改为以下:

public class TestPrint {

public static void main(String[] args) {

int i = 4;

double j = 5.000f;

System.out.printf("i的值为%5d,\n", i);

System.out.printf("i的值为%3d,j的值为%.2f", i,j);

}

}

运行结果为:

i的值为 4,

i的值为 4,j的值为5.00

原来在"%"与"d"之间加个数5的意思是输出5个占位符。默认向右对齐。这样的输出是很有用的,比如你想输出一个表格,因各个数大小不一,有的5位有的4位,这样输出的的表格结果就对不齐了。如果将输出结果全部为同一样的占位符数。那样就对齐了。呵呵。

除了"%d"可以这样外,别的也可以,读者不防试试。会有很多收获的。

我们再试着将代码改一下:

public class TestPrint {

public static void main(String[] args) {

int i = 4;

double j = 5.000f;

System.out.printf("i的值为%05d,\n", i);

}

}

运行结果为:

i的值为00004,

哈哈,原来"%05d"的意思是输出5个占位符,如果数字不足5的话就有左边以0相补

参考资料:http://jixiao157.blog.163.com/blog/static/6750392320105811125408/?fromdm&fromSearch&isFromSearchEngine=yes
763077374
推荐于2017-10-02 · TA获得超过529个赞
知道小有建树答主
回答量:208
采纳率:100%
帮助的人:132万
展开全部
  printf是用与格式化输出的和c的类似。
  java中的printf()就是照搬C中的
而println()就是输出后换行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wuzhikun12
2011-03-29 · TA获得超过880个赞
知道小有建树答主
回答量:931
采纳率:0%
帮助的人:449万
展开全部
好像是println和print吧,println表示调用此方法后的语句输出时换行,print表示不换行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
原始流浪者
2011-03-29 · 超过16用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:35万
展开全部
println 是输出并换行;
printf 是输出,无关是否换行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ayanami365
2011-03-29 · TA获得超过937个赞
知道小有建树答主
回答量:1777
采纳率:0%
帮助的人:725万
展开全部
pfintln自动换行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式