Java - 使用者輸入

哈囉,未來的Java程式設計師們!今天,我們將進入Java中使用者輸入的精彩世界。作為您親切友善的電腦科學老師,我將引導您走過這個程式設計的重要環節。相信我,一旦您掌握了這項技能,您將會感覺自己像個巫師,能夠召喚出互動式程式!

Java - User Input

為什麼使用者輸入很重要

想象一下,如果您正在創建一個需要玩家猜數字遊戲。沒有使用者輸入,您的遊戲可能會像看油漆乾燥一樣無趣!使用者輸入為我們的程式帶來生命,使它們變得動態且互動。這就像讓您的程式擁有耳朵,能夠聽見使用者想要說的話。

魔法棒:Scanner類別

在Java中,我們用Scanner類別作為捕獲使用者輸入的魔法棒。它就像一個友善的機器人,會傾聽使用者輸入的內容,並將這些資訊帶給我們的程式。讓我們看看如何召喚這個有用的助手:

import java.util.Scanner;

public class UserInputExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 這裡還會有更多代碼
}
}

在這個咒語(我是指,代碼)中,我們做了兩件重要的事:

  1. 我們從java.util包中import了Scanner類別。
  2. 我們創建了一個新的Scanner物件,它將從System.in(代表鍵盤輸入)中讀取。

擷取我們的第一個輸入

現在我們已經準備好Scanner,讓我們用它來詢問使用者的名字:

System.out.print("你叫什麼名字? ");
String name = scanner.nextLine();
System.out.println("哈囉," + name + "! 歡迎來到Java程式設計!");

讓我們來解析一下:

  1. 我們使用System.out.print()來提問使用者。
  2. scanner.nextLine()會等待使用者輸入內容並按下Enter。
  3. 我們將使用者輸入的內容存儲在name變量中。
  4. 最後,我們用使用者的名字向他們問好!

當您運行此程式時,可能會看起來像這樣:

你叫什麼名字? Alice
哈囉,Alice! 歡迎來到Java程式設計!

這不是很神奇嗎?我們正在和我们的程式對話!

不同的輸入類型

現在,讓我們探索如何輸入不同的數據類型。Scanner類別非常多才多藝,可以處理各種數據類型。以下是我們可以使用的方法表格:

方法 描述
nextLine() 讀取String值
nextInt() 讀取int值
nextDouble() 讀取double值
nextBoolean() 讀取boolean值
next() 讀取單個詞(String)

讓我們在更複雜的例子中看看這些方法的運用:

import java.util.Scanner;

public class UserInputTypes {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.print("請輸入您的年齡: ");
int age = scanner.nextInt();

System.out.print("請輸入您的身高(公尺): ");
double height = scanner.nextDouble();

System.out.print("您是學生嗎?(true/false): ");
boolean isStudent = scanner.nextBoolean();

scanner.nextLine(); // 消耗剩下的換行符

System.out.print("您最喜歡的颜色是什麼? ");
String color = scanner.nextLine();

System.out.println("\n以下是您告訴我的:");
System.out.println("年齡:" + age);
System.out.println("身高:" + height + " 公尺");
System.out.println("學生:" + isStudent);
System.out.println("最喜歡的颜色:" + color);

scanner.close(); // 記得關閉scanner!
}
}

這個程式就像一個友善的機器人采訪者!它會要求提供各種資訊,然後總結它學到的內容。以下是一些重要的點:

  1. 我們使用不同的方法(nextInt(), nextDouble(), nextBoolean(), nextLine())來讀取不同類型的輸入。
  2. 注意在nextBoolean()之後的額外scanner.nextLine()。這是一個小技巧,用來處理按Enter留下的換行字符。
  3. 最後,我們關閉()scanner。清潔我們的環境是很好的禮貌!

處理輸入錯誤

現在,如果使用者輸入了意料之外的內容會怎麼樣?例如,如果他們在我們詢問年齡時輸入"二十五"會怎麼樣?我們的程式可能會比90年代的電腦還要快地崩潰!為了防止這種情況,我們可以使用錯誤處理:

import java.util.Scanner;
import java.util.InputMismatchException;

public class SafeUserInput {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int age = 0;
boolean validInput = false;

while (!validInput) {
try {
System.out.print("請輸入您的年齡: ");
age = scanner.nextInt();
validInput = true;
} catch (InputMismatchException e) {
System.out.println("糟糕!那不是有效的年齡。請輸入一個數字。");
scanner.nextLine(); // 清除無效輸入
}
}

System.out.println("您的年齡是:" + age);
scanner.close();
}
}

這段代碼就像一個有耐心的老師。它會不斷地詢問年齡,直到獲得有效的數字。如果使用者輸入了不是數字的內容,它會親切地要求他們再試一次。

結論

恭喜!您已經學會了如何通過獲取使用者輸入來使您的Java程式變得互動。請記住,孰能生巧。嘗試創建您自己的程式,要求使用者輸入——也許是一個簡單的計算器,或者是一個使用者必須猜數字的遊戲。可能性是無窮的!

在我們結束之前,這裡有一個有關程式設計的笑話:Java開發者為什麼要戴眼鏡?因為他們不C#!(懂了嗎?C-Sharp?好吧,我會自己出去的...)

繼續編碼,繼續學習,最重要的是,玩得開心!直到下次,這是您的親切鄰居Java老師簽名。編碼愉快!

Credits: Image by storyset