汇总1到100之间所有奇数的程序

时间:2016-06-04 18:59:56

标签: java logic

尝试创建一个程序,将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);

}

2 个答案:

答案 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案例,因为numberif

中的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()