全新的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;
}
}
但看起来我有一个无限循环它一直在计数......我很感激任何帮助。
答案 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;
}
}