2013-11-21 103 views
0

嗨,大家好,我是新來的java我有我的家庭工作要做,我聲明全局變量,但我的變量正在改變。如何增加變量的值

計劃:

main() 
{ 

    public static final double j =20; 
    public static final double l =5; 

    if (l=5) 
    { 
     for (; j<=50 ; j+=2) 
     { 
      System.out.printf("value of j is %d\n",j); 
     } 

     for (; j>=4; j-=2) // i want here the value j to be 20 ... 
     { 
      System.out.printf("value of decrement is %d\n",j); 
     } 

    } 
} 

其當我再一次intialze工作J = 20 decreament for循環......但我想J即可開始從20

+0

如果這是Java,那麼它爲什麼標記爲JavaScript或C++?這些是完全不同的語言。 –

+0

爲什麼有標籤C++? – David

+0

在這裏發帖時使用正確的縮進,使閱讀起來更容易。 – Plux

回答

4

首先,在JAVA中沒有什麼叫做全局變量。 另外,您在代碼中有這麼多的編譯錯誤: 我會列出一些:

返回類型的 main()功能
  1. 丟失。

    void main() { //code here }

  2. 靜態和公共修飾符不能爲局部變量(方法變量)

    public static final double j =20; // this is wrong inside a method.
    原因:裏面的方法變量具有局部範圍。方法變量沒有公共/私人範圍。 所以它應該是:

    final double j =20; //final means 'j' behaves as a constant

  3. 您試圖分配5到L之內,如果:

    if (l=5) //它不能編譯,因爲第l將成爲5和內如果表達式應該是布爾值。 它應該是if(l==5)

  4. for (; j<=50 ; j+=2)將不編譯,因爲j被聲明爲最終變量。

修復可以是:for (int jNew=0;jNew<=50;jNew++)

所以整體的代碼可以是:

void main() 
{ 
     final double j =20; 

     final double l =5; 


    if (l==5) 
    { 
    for (int j3=0; j3<=50 ; j3+=2) 
    { 
     System.out.println(j); 

    } 
    for (int j4=0; j4>=4; j4-=2) // i want here the value j to be 20 ... 

    { 
     System.out.println(j); 

    } 


} 
} 

都要經過Java here基礎。

1

您可以用簡單的聲明變量循環本身

for(j=20; j>=4; j-=2) // i want here the value j to be 20 ... 
{ 
    System.out.printf("value of decrement is %d\n",j); 
} 
0

還沒到問題本身,但請有記住,在Java的主要方法應該是這樣聲明:

public static void main(String[] args) { ... } 

原因在於可以在這裏找到: Why is the Java main method static?

0

你得到對於j意外的值(52),原因是該語句j+=2

在每次迭代時,這會用遞增的值覆蓋j的值。

經過幾次循環迭代後,j的值變爲52,由於條件j<=50不滿足,導致循環退出。

因此,第二循環開始前,你需要重新初始化Ĵ與價值20

注:

如果你想我& J確定是公共靜態,聲明它們的方法外但在課堂上。

由於您不需要十進制數字,因此請使用int而不是double