尝试创建一个程序,将1到100之间的所有奇数相加,显示它,然后显示平均值。我无法弄清楚为什么循环会提前中断。对此也是新的,所以请轻松一下:p
int sum = 0;
double average;
double lowerbound = 1;
double upperbound = 100;
double number = lowerbound;
double remainder = 1;
//loop
while(number<= upperbound)
if (remainder == 1){
sum += number;
remainder = number%2;
System.out.println(number);
number++;
}else{
number++;
}
average = sum/upperbound;
System.out.println();
System.out.println ("These are your sums and averages");
System.out.println (sum);
System.out.println (average);
}
答案 0 :(得分:0)
主要问题是你的剩余部分。您应该直接计算 :
while(number <= upperbound){
if (number % 2 == 1){
sum += number;
System.out.println(number);
}
number++;
}
您的代码会发生什么:
remainder
的开头为1.在第一个循环中,number
也是1.因此,您输入if
个案,然后计算将要remainder
的新1%2 = 1
1}}。因此,在下一次运行中,您将更新余数为
remainder = 2%2 = 0`. //number = 2
但是,由于您的remainder
变量现在设置为0,因此您永远不会再次输入if
个案,因此永远不会更新您的remainder
。 (所以循环不会更早结束,你只是跳过其中的内容)
另请注意,您不需要else
案例,因为number
和if
else
增加了>>> st = " * ** abc * def ghi **abc* mn*"
>>>
>>> list(set(x.strip() for x in st.split('*') if x.strip()))
['mn', 'def ghi', 'abc']
答案 1 :(得分:0)
您必须检查正在计算的每个值的余数。
new SqlParameter()