簡體   English   中英

如何在 Java 中的一行代碼中獲取不同變量的輸入?

[英]How to take inputs in different variables in one line of code in Java?

假設在 Java 代碼中,

{        
double a, b, c;      
Scanner sc = new Scanner(System.in);    
a = sc.nextDouble();      
b = sc.nextDouble();      
c = sc.nextDouble();   
}

由於sc.nextDouble(); 對所有變量都是通用的,我該怎么做才能減少代碼行數(不使用數組)?

當人們說“減少行數”時,愚蠢的答案只是刪除所有換行符,因為換行符無論如何都沒有語義意義。

但我認為你的意思可能是“減少語句的數量”。

通過聲明變量並在單個語句中分配它們,您可以僅用兩個語句來表達此塊的主體:

Scanner sc = new Scanner(System.in);    
double a = sc.nextDouble(),
       b = sc.nextDouble(),
       c = sc.nextDouble();

但是這樣做並沒有真正的優勢,因為它實際上並沒有顯着減少重復; 和樣式指南(例如Google 的 Java 樣式指南)積極禁止在單個語句中聲明多個變量。

如果您實際上不需要在單獨的變量中使用它們,則可以使用數組:

double[] ds = new double[3];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 3; ++i) ds[i] = sc.nextDouble();

但是,雖然這會阻止您重復sc.nextDouble() ,但您必須改為引入循環 gubbins。

你所擁有的一切都很好。 我唯一要改變的是同時聲明和初始化變量。

Scanner sc = new Scanner(System.in);    
double a = sc.nextDouble();
double b = sc.nextDouble();
double c = sc.nextDouble();

如果您真的一心只想編寫sc.nextDouble()一次,則可以在初始化枚舉時使用帶有 double 類型的實例變量的枚舉。

public enum DoubleExample {
    A, B, C;   
    public final double value;
    private DoubleExample() { value = new Scanner(System.in).nextDouble(); }
}

當然,如果你使用這個方案, ABC的值在創建后是不能修改的。 此外,由於每個 double 分配使用單獨的 Scanner,因此每個 double 都必須在新行中輸入,並且每個初始化的變量都會泄漏一些資源。

這是一個包含完整可運行示例的要點

暫無
暫無

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

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