2014-09-23 35 views
-1
public static void main(String[] args) { 
    Scanner in = new Scanner(System.in); 
    System.out.println("Insert value for year (Ez = 2014): "); 

    double year = in.nextDouble(); 
    System.out.println("Insert value for day (Ex = 12): "); 

    double day = in.nextDouble(); 
    System.out.println("Insert number for month (Ex = 3): "); 

    double month = in.nextDouble(); 
    double totalDays = day; 

    if (month == 1) { 
    } else if (month == 2) { 
     double totalDays = (totalday + 31); 
    } 
} 

我想取totalDays double並在if語句中使用它。我想添加一個變量而不再使用雙打。怎麼樣?如何添加一個雙變量只使用一個雙重

+3

你是什麼意思我想用一個變量添加它,而無需使用了一倍? – 2014-09-23 23:32:40

+1

這裏有沒有必要的「雙」? ''int''好像是一個更好的選擇 – 2014-09-23 23:33:46

+0

爲什麼0月1月?爲什麼每月31天?也許28? – 2014-09-23 23:36:42

回答

1

您的代碼在條件內錯誤地重新聲明瞭totalDays。不過,重新聲明內部作用域中的變量並不是你想要做的。你應該使用相同的變量。使用複合添加,賦值運算符,就像這樣:

totalDays += 31; 
+0

是的,她可能會遇到重複本地變量totalDays的編譯錯誤,並且需要刪除內部的「double」如果。 – 2014-09-23 23:40:16

+0

我試圖讓它可以在另一個語句中調用這個計算,但是我不知道如何去做。 – 2014-09-23 23:49:18

+0

@CloteLewis要共享一個計算在多個地方使用,請爲它寫一個新的方法。將執行計算的代碼放入方法中,並將計算結果返回到return語句中。然後調用該方法,將它傳遞給你想要的參數,並將結果存儲在一個變量中。 – dasblinkenlight 2014-09-24 01:09:52

0

如果你的意思是你想避免重複在每個月寫totalDays = totalDays + 31,那麼你需要的功能。

對於函數和main都可以看到totalDays,它需要是一個在main之外聲明的成員變量,而不是main函數的本地變量。

由於您在main中編寫了一個靜態函數,因此totalDays也需要是靜態的。

公共類的GetSystemInfo {

static double totalDays = 0; 

public static void main(String[] args) { 
    Scanner in = new Scanner(System.in); 
    System.out.println("Insert value for year (Ez = 2014): "); 

    double year = in.nextDouble(); 
    System.out.println("Insert value for day (Ex = 12): "); 

    double day = in.nextDouble(); 
    System.out.println("Insert number for month (Ex = 3): "); 

    double month = in.nextDouble(); 
    totalDays = day; 

    if (month == 1) {  
    } else if (month == 2) { 
     addThirtyOne(); 
    } 

} 

static void addThirtyOne() 
    { 
     totalDays = totalDays + 31; 
    } 

}

相關問題