|
2-5
格式化輸出
內容:
2-5-1
格式化輸出方法
- printf
許多情況下,我們希望列印出來的資料能排列整齊,如此不但較為美觀,也較容易閱讀,這就必須仰賴格式化輸出方法:System.out.printf()。其實,printf
與 C
語言的
printf
非常類似,列印時需分辨數值的資料型態,再依此設定列印格式,語法如下:
System.out.printf(“列印文字與格式”,
變數_1,
變數_2,
…); |
左右括號內引數包含兩種資料,一者由兩個雙引號包起來("….
")的是文字直接輸出,以及列印變數的資料型態與指定格式;另一者為一連串所欲輸出的變數。變數的列印格式由
% 作為標頭記號,每一個
%
表示一個變數內容;也就是說,有幾個變數輸出,就需要同樣多個 %
表示每一變數的輸出型態,較常用的輸出型態如表
2-3 所示。
表
2-3 printf
列印格式
列印格式 |
輸出敘述 |
列印格式 |
輸出敘述 |
%c |
字元 |
%o |
8
進位整數 |
%d |
十進位整數 |
%x |
16
進位整數 |
%5d |
5
個位置整數 |
\n |
跳行 |
%s |
字串 |
\t |
跳
Tab 格 |
%f |
浮點數列印 |
\' |
印出單引號 |
%5.2f |
5
位數及2
小數點 |
\" |
印出雙引號 |
%.2f |
浮點數及2小數點 |
\\ |
印出反斜線 |
2-5-2
範例研討:列印格式範例
(A)
程式功能:Ex2_4
圖 2-11
為
printf 的範例,列印順序如下,將變數
car 內容以字串格式(%s)印出,接著再印出『
定價是
』(注意,空白格也要印出),再將變數
price 內容以整數格式(%d)印出,並印出『
萬元』,最後將游標跳到下一行(\n)。
圖
2-11 printf
列印範例
(B)程式範例:
01
02
03
04
05
06
07 |
public
class
Ex2_4 {
public
static
void
main(String[]
args)
{
String
car
=
"CRV
休旅車";
int
price
= 75;
System.out.printf("%s
定價是
%d
萬元\n",
car,
price);
}
} |
2-5-3
範例研討:不同資料格式輸出
(A)程式功能:Ex2_5.java
請製作一只程式,它會要求使用者輸入一個整數,再以
10 進位、8
進位、16
進位與浮點數格式印出該數值的內容,如下所示:
請輸入一個整數
=>32
10
進位表示
= 32
16
進位表示
= 20
8
進位表示
= 40
浮點數表示
= 32.00 |
(B)製作技巧分析
由鍵盤(System.in)讀入一個整數,並將其儲存於
value 變數內,再
10 進位(%d)、8
進位(%o)、16
進位(%x)與浮點數(%f)格式分別印出。
(C)程式範例:
01
02
03
04
05
06
07
08
09
10
11
12
13
14 |
// Ex2_5.java
import
java.util.*;
public
class
Ex2_5 {
public
static
void
main
(String[]
args)
{
Scanner
keyin
=
new
Scanner(System.in);
int
value;
System.out.printf("請輸入一個整數
=>");
value
=
keyin.nextInt();
System.out.printf("\t
10
進位表示
= %d\n",
value);
System.out.printf("\t
16
進位表示
= %x\n",
value);
System.out.printf("\t
8
進位表示
= %o\n",
value);
System.out.printf("\t
浮點數表示
= %.2f\n",
(float)value);
}
} |
2-5-4
自我挑戰:印出漂亮的購物清單
(A)程式功能:PM2_2.java
如同
Ex2_2.java
範例,但我們希望印出比較漂亮的格式,如下:
品名
數量
單價
小計
=============================
酥餅
50 20 1000
脆笛酥
30 100 3000
=============================
總計
= 4000 |
(B)製作技巧提示:
如同範例
Ex2_3.java(請複製
Ex2_3.java 來修改),吾人取用一些變數儲存相關資料(name1
= "酥餅"、
price1 = 50、num1
= 20、name2
= "脆笛酥"、
price2 = 30、
num2 = 100),再宣告
sum1(=price1
* num1)與
sum2(=price2
* num2)變數作為兩產品的總額。最後利用格式化輸出
printf 印出相關資料,程式片段如下:
01
02
03
04
05
06
07
08
09
10
11
12 |
…..
int
sum1
=
price1
*
num1;
int
sum2
=
price2
*
num2;
System.out.printf("品名\t數量\t單價\t小計\n");
System.out.printf("=============================\n");
System.out.printf("%s\t%d\t%d\t%d\n",
name1,
price1,
num1,
sum1);
System.out.printf("%s\t%d\t%d\t%d\n",
name2,
price2,
num2,
sum2);
System.out.printf("=============================\n");
System.out.printf("總計
= %d\n",
sum1+sum2);
..... |
|
翻轉工作室:粘添壽
Java 程式設計(一) 含程式邏輯
翻轉電子書系列:
|