Skip to content

Latest commit

 

History

History
97 lines (69 loc) · 2.71 KB

java_stdio.rst

File metadata and controls

97 lines (69 loc) · 2.71 KB

螢幕輸出及鍵盤輸入

螢幕輸出有幾種方式。第一種是前面章節已經使用過的 System.out.printSystem.out.println。這兩種方法的的差別是前者沒有換行,而後者有換行。如果有數個資料需要一起印出時,則可以使用 + 進行串接。例如:

public class Show {
    public static void main(String argv[]) {
        int design, acting;

        design = 3;
        acting = 5;
        System.out.println("Design is " + design +
            "and acting is " + acting);
    }
}

第二種方式是在 Java SE 5 之後才支援[1]。這個方式與 C 語言的 printf 功能類似。例如:

System.out.printf("Today is %s, %d.\n", "January", 18);
// %s 的位置替換成 January 這個 String
// %d 的位置替換成 18 這個整數
// \n 表示換行符號

顯示:

Today is January, 18

例如:

double score = 92.345
System.out.printf("My score is %.2f.\n", score);
// %.2f 的意義是小數點以下取兩位,並四捨五入。
System.out.printf("My score is %6.2f.%n", score);
// %6.2f 的意義是:包括小數點共6位,小數點以下取兩位,
// 並四捨五入。所以9的左邊多空一格。

顯示:

My score is 92.35.
My score is  92.35.

鍵盤輸入則可以透過[2]。例如:

// 使用時先載入 Scanner 所屬的 package
import java.util.*;  // * 的意義是 java.util 內所有的類別

// 定義物件:
Scanner scanner = new Scanner(System.in);

// 輸入字串:
String name = scanner.nextLine();

// 輸入整數:
int score = scanner.nextInt();

// 輸入double
double height = scanner.nextDouble();

// 輸入float
float weight = scanner.nextFloat();

以下是一個完整的範例:

import java.util.*;

public class EnglishExam {
    public static void main(String argv[]) {
        int vocab, grammar, listen, score;

        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        vocab = scanner.nextInt();
        grammar = scanner.nextInt();
        listen = scanner.nextInt();
        score = vocab + grammar + listen;
        System.out.printf("The total score of %s is %d.%n",
            name, score);
    }
}
[1]System.out.printf(), http://www.java2s.com/Code/JavaAPI/java.lang/System.out.printf.htm
[2]java.util.Scanner, http://www.java2s.com/Code/JavaAPI/java.util/Scanner.htm