[英]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(); }
}
當然,如果你使用這個方案, A
、 B
、 C
的值在創建后是不能修改的。 此外,由於每個 double 分配使用單獨的 Scanner,因此每個 double 都必須在新行中輸入,並且每個初始化的變量都會泄漏一些資源。
這是一個包含完整可運行示例的要點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.