2017-06-26 11 views
-2

ブランドニューズレターSumを作成して、whileのループを含める必要があります。メソッドは1つのパラメータをとり、その数までの合計を計算します。これは私が持っているものです。JAVA中にループするメソッド

public class Summing { 

public static void main(String [] args){ 

    double result=5; 

    Summing mySum=new Summing(); 

    double Sum = mySum.Sum(result); 

    System.out.printf("\nthe sum is :%d " , Sum); 

} 

public static double Sum(double result) { 
    result = 5; 

    double i = 1; 

    while (i <= result) 

    { 
     result += i; 

     System.out.println("count:" + result); 

     i = i++; 

    } 
    return result; 
} 
} 

しかし、私はそれがcounting..Iは任意の助けに感謝し続ける無限ループを持っているように見えます。

+2

を?乾杯。 – domsson

+9

'i = i ++;'と書くのではなく、 'i ++;'と書いてください。 – Jesper

+5

ループ内の 'result'変数をインクリメントすると無限ループになり、' i'が 'result'に到達することは不可能になります。合計を追跡するために別の変数を使用します。 – jpw

答えて

1

ここで、この:彼らの両方がこの条件満たされていないと不可能にされ、同時にインクリメントますので

result += i; 

は、i++

はループが無限になると組み合わせる

while (i <= result) 
1

に別の名前を付けますあなたの引数(例えば "limit")を返し、結果をdoubleと宣言します。
ああ、増分した方法はiが間違っていました。私.Thisの値を増加させないあなたは、私は=私++が書かれている

public static double Sum(double limit) { 
    double result=5; 
    double i=1; 
    while(i<=limit) { 
     result+=i; 
     System.out.println("count:" + result); 
     i++; 
    } 
    return result; 
    } 
+1

@Tom right、ありがとう。 –

2

は、このような変数を作成することと同じです。

i=i++ ; 

tmp=i ; 
i=i+1 ; 
i=tmp ; 

あなたに同等ですi ++かi = i + 1だけ書くべきです。

0

あなたのコードを無限ループに入れている状態を削除しました。

何を行っていることはそう、(あなたが無限ループにそれを導いた各反復での結果だけでなく、私をインクリメントしている私。

public class Summing { 

     public static void main(String [] args){ 

      double result=5; 

      Summing mySum=new Summing(); 

      double Sum = mySum.Sum(result); 

      // System.out.printf("\nthe sum is "+Sum); 

     }//end main 

     public double Sum(double result) { 

      double sum=0; 
      double i=1; 

      while (i <= result) { 
       sum += i; 
       i++; 
       System.out.printf("\nthe sum is "+sum); 
      } return result; 

     }//end sum 

    }//end Summing 
+0

それは今は大丈夫です..正解に負のスコアを与える必要はありません –

+1

申し訳ありません私はそこに説明を載せるのを忘れています –

+0

あなたはそれを修正しました。すべてのあなたの答えにそれをすることを忘れないでください。 OPと将来の読者はそれから利益を得るでしょう。 – Tom

0

1)状態でのSumメソッドがstaticとして宣言しながら、ということです作成されたSummingオブジェクトを作成する必要はありません。 2)Sumメソッドでは、mainに入れた結果の引数をオーバーライドします。 3)ループでは結果だけでなく結果も増やすので、結果は常に小さくなります。 その結果、あなたはこのようなものが必要です:ねえアリは、あなたはとても親切で、適切なフォーマット(!インデント)あなたのコードになります

public class Summing { 

public static void main(String [] args){ 

    double result=5; 
    double sum = Summing.Sum(result); 
    System.out.printf("\nthe sum is :%d " , Sum); 
} 

public static double Sum(double iterations) { 
    double i = 1; 
    double result = 0; 
    while (i < = iterations){ 
     result += i; 
     System.out.println("count:" + result); 
     i++; 
    } 
    return result; 
} 
} 
関連する問題