print\println\printf的區別

print將它的參數顯示在命令窗口,並將輸出光標定位在所顯示的最後一個字符以後。spa

println 將它的參數顯示在命令窗口,並在結尾加上換行符,將輸出光標定位在下一行的開始。3d

printf是格式化輸出的形式。字符串

下在舉個例子:class

package other;變量

public class TestPrint {float

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

   int i = 4;co

   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相補

相關文章
相關標籤/搜索