簡體   English   中英

是否可以使用掃描儀輸入不同對象的值?

[英]Is it possible to use a Scanner to input values for different objects?

我正在構建我的第一個程序來計算手機游戲中對老板造成的傷害。 它分別考慮了我的三個騎士的攻擊,防御,健康和眩暈能力(動態),並將它們與擁有自己攻擊和防御(靜態)的boss相匹配。 我為Knight和Boss的每個人定義了各自的屬性,但是在主類中聲明對象時,我不想硬編碼其中的值,而是讓用戶輸入自己的值來制作整個程序動態。

我不確定如何將掃描儀用於此特定任務。

Knight knight1 = new Knight(15346, 17378, 1784, .25);

Knight knight2 = new Knight(13340, 15794, 1409, .25);

Knight knight3 = new Knight(13704, 15345, 1588, .25);

掃描儀可讓您從輸入源獲取值。 既可以是用戶輸入,也可以是文件中的內容。

掃描程序具有返回不同內置類型值的接口,具體取決於在“掃描”源中找到的內容。 在您的情況下,您可以在循環內調用“ nextInt()”來獲取騎士所需的4個值。 (請記住也調用nextLine()以使用用戶鍵入的Enter鍵)。 當您收集4個值時,您的代碼將使用它們創建一個新的Knight對象。 掃描程序不知道您的騎士等級,因此您只能使用它來詢問創建騎士所需的int參數!

但老實說:小心手動提供此類數據。 您是否真的要在每次運行代碼時鍵入16個值? 因此,請考慮編寫允許快速獲取此類數據的代碼,例如通過使用配置文件。

輸入字符串,例如:“ 15346、17378、1784,.25”,然后除以,

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    String line = in.nextLine();
    String[] lineArray = line.split(",");
    double param0=Double.parseDouble(lineArray[0]);
    double param1=Double.parseDouble(lineArray[1]);
    double param2=Double.parseDouble(lineArray[2]);
    double param3=Double.parseDouble(lineArray[3]);

    Knight knight1 = new Knight(param0, param1, param2, param3);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM