方法内部的JAVA while循环
对Java来说是全新的。。我需要创建一个方法方法内部的JAVA while循环,java,loops,methods,while-loop,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("
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;
}
}
公共类求和{
公共静态void main(字符串[]args){
双结果=5;
求和mySum=新求和();
双和=mySum.Sum(结果);
System.out.printf(“\n总和为:%d”,总和);
}
公共静态双和(双结果){
结果=5;
双i=1;
而(i这里:
result += i;
与i++
使循环无限大,因为它们同时递增,这使得不可能不满足此条件
while (i <= result)
while(i为参数指定另一个名称(“limit”),并将结果声明为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;
}
公共静态双和(双限){
双结果=5;
双i=1;
而(i您已经编写了i=i++,它不会增加i的值。这相当于创建如下变量:
i=i++ ;
相当于
tmp=i ;
i=i+1 ;
i=tmp ;
您应该只编写i++或i=i+1。我已经删除了将代码放入无限循环的条件
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
你们所做的是,在条件while(i)中,你们增加了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
公共类求和{
公共静态void main(字符串[]args){
双结果=5;
求和mySum=新求和();
双和=mySum.Sum(结果);
//System.out.printf(“\n总和为”+总和);
}//端干管
公共双和(双结果){
双和=0;
双i=1;
而(i1)Sum方法声明为static,因此不需要创建分离的Summing对象。
2) 在Sum方法中,您重写了放入main中的result参数。
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;
}
}
公共类求和{
公共静态void main(字符串[]args){
双结果=5;
双和=求和。求和(结果);
System.out.printf(“\n总和为:%d”,总和);
}
公共静态双和(双迭代){
双i=1;
双结果=0;
而(i<=迭代次数){
结果+=i;
System.out.println(“计数:+结果);
i++;
}
返回结果;
}
}
嘿,阿里,你能不能这么客气,把格式(缩进)调整好你的代码?干杯。不要写i=i++;
,只写i++;
。当你增加循环中的result
变量时,这是一个无限循环,使得i
永远不可能达到result
。使用另一个变量跟踪求和。你也不需要求和的实例来调用st现在可以了吗对不起,我忘了把解释放在那边,你已经把它修好了,所以现在没问题。请记住对你的所有答案都这样做。OP和未来的读者会从中受益的。