JAVA while循环内部的方法

时间:2017-06-26 11:04:07

标签: java loops methods while-loop

全新的Java ..我需要创建一个方法Sum来包含while循环。该方法将采用一个参数并计算该数字的总和。这就是我所拥有的:

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;
}
}

但看起来我有一个无限循环它一直在计数......我很感激任何帮助。

5 个答案:

答案 0 :(得分:2)

你写过i = i ++,它不会增加i的值。这相当于创建一个这样的变量:

i=i++ ; 

相当于

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

你应该只写i ++或i = i + 1。

答案 1 :(得分:1)

这里:

result += i;

i++

结合使用

使循环无限,因为它们都会同时增加,这使得无法解除这种情况

 while (i <= result)

答案 2 :(得分:1)

为您的参数指定另一个名称(例如“限制”),并将结果声明为double 哦,你增加i的方式是错误的。

  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;
  }

答案 3 :(得分:0)

我已经删除了使代码无限循环的条件。

你所做的就是在条件的同时(我已经增加了i以及导致每次迭代导致无限循环。

 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

答案 4 :(得分:0)

1)Sum方法声明为static,因此您不需要创建分离的Summing对象。 2)在Sum方法中,您重写结果参数,该参数放在main中。 3)在循环中你增加结果以及i,所以我总是会小于结果。 因此,你应该有这样的东西:

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;
}
}