当前位置: 澳门新濠3559 > 数据库 > 正文

println和print基本没什么差别,则会输出0

时间:2019-11-08 05:43来源:数据库
    如果你想输出由静态文本和一个或多个变量中存储的动态信息组成的混合产物那么printf()语句再理想不过了。之所以说它很理想,有两个原因。首先,它将静态数据和动态数据清晰

     如果你想输出由静态文本和一个或多个变量中存储的动态信息组成的混合产物那么printf()语句再理想不过了。之所以说它很理想,有两个原因。首先,它将静态数据和动态数据清晰地分至两个不同的部分,从而可以轻松的维护。其次,通过printf(),我们有充分的控制权来决定如何将动态信息显示在屏幕上,包括类型、精度、对齐方式和位置。

printf主要是继承了C语言的printf的一些特性,可以进行格式化输出

print就是一般的标准输出,但是不换行

println和print基本没什么差别,就是最后会换行

System.out.printf("the number is: d",t);
参照Java API的定义如下:
'd' 整数 结果被格式化为十进制整数
'o' 整数 结果被格式化为八进制整数
'x', 'X' 整数 结果被格式化为十六进制整数
'e', 'E' 浮点 结果被格式化为用计算机科学记数法表示的十进制数
'f' 浮点 结果被格式化为十进制数
'g', 'G' 浮点 根据精度和舍入运算后的值,使用计算机科学记数形式或十进制格式对结果进行格式化。
'a', 'A' 浮点 结果被格式化为带有效位数和指数的十六进制浮点数

println("test")相当于print("testn")就是一般的输出字符串

printprintlnprintf的区别

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的值为],n", i);

System.out.printf("i的值为=,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的值为d,n", i);

}

}

运行结果为:

i的值为00004,

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

     那么如果想传人两个值,只需向字符串插入两个指示符,并确保将两个值作为参数传入。例如:

%u                       将参数认为是一个整数,显示为无符号的十进制数

     printf("%.2f",43.2);

%c                      将参数认为是一个整数,显示为对应非ASCII字符

%s                        将参数认为是字符串,显示为字符串

还有一些指示符可以用来调整参数的对齐方式、填充字符、正负号和宽度。

%y                        将参数认为是一个整数,显示为大写的十六进制数

 

常用的类型指示符

     printf("%d瓶水花费¥%f",100,43.20);

%x                        将参数认为是一个整数,显示为小写的十六进制数

执行这个命令会输出:这里有100瓶水。

printf("这里有%d瓶水。",100);

%b                      将参数认为是一个整数,显示为二进制

 

     以上输出:43.20

     在这个例子里,%d是一个称为类指示符的占位符,d指示将在这个位置上放置一个整数值。执行这个语句非时候,参数100将插入占位符的位置。一直记住需要一个整数,所以如果传人一个包含小数值的数,这个数将向下取整为最接近非整数。如果传人100.2或100.6,就会输出100。如果传人一个字符串,则会输出0。这一点同样适用于其他类型的指示符。

     执行这个命令输出:100瓶水花费¥43.20。

%o                       将参数认为是一个整数,显示为八进制

处理小数值时,可以使用一个精度指示符来调整精度。以下是一个例子:

%f                       将参数认为是一个浮点数,显示为浮数

类型                            描述

%d                      将参数认为是一个整数,显示为有符号的十进制数

编辑:数据库 本文来源:println和print基本没什么差别,则会输出0

关键词:

  • 上一篇:没有了
  • 下一篇:没有了