Java 对1到100之间的所有奇数求和的程序

Java 对1到100之间的所有奇数求和的程序,java,logic,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 (

尝试创建一个程序,将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);
int和=0;
双倍平均;
双下限=1;
双上限=100;
双倍数字=下限;
双余数=1;
//环路

而(数字)的主要问题是你的剩余部分。你应该直接计算它:

while(number <= upperbound){
    if (number % 2 == 1){
        sum += number;
        System.out.println(number);
    }
    number++;
}
但是,由于
余数
变量现在设置为0,您将永远不会再次输入
if
大小写,因此永远不会更新您的
余数
(因此循环不会提前结束,您只需跳过其中的所有内容)


还请注意,您不需要使用
else
案例,因为您在
if
else

中都在增加
number
,主要问题是您的剩余部分。您应该直接计算

while(number <= upperbound){
    if (number % 2 == 1){
        sum += number;
        System.out.println(number);
    }
    number++;
}
但是,由于
余数
变量现在设置为0,您将永远不会再次输入
if
大小写,因此永远不会更新您的
余数
(因此循环不会提前结束,您只需跳过其中的所有内容)


还请注意,您不需要使用
else
案例,因为您在
if
else
中都增加了
number
,因此您必须检查正在计算的每个值的余数

public static void main(String[] args) {
    int sum = 0;
    double average;
    double lowerbound = 1;
    double upperbound = 100;
    double number = lowerbound;
    //double remainder = 1;

    //loop
    while(number<= upperbound)
        if (number%2==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);
}
publicstaticvoidmain(字符串[]args){
整数和=0;
双倍平均;
双下限=1;
双上限=100;
双倍数字=下限;
//双余数=1;
//环路

而(number您必须检查计算的每个值的余数

public static void main(String[] args) {
    int sum = 0;
    double average;
    double lowerbound = 1;
    double upperbound = 100;
    double number = lowerbound;
    //double remainder = 1;

    //loop
    while(number<= upperbound)
        if (number%2==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);
}
publicstaticvoidmain(字符串[]args){
整数和=0;
双倍平均;
双下限=1;
双上限=100;
双倍数字=下限;
//双余数=1;
//环路

虽然(数字您应该查找当前数字的剩余部分。此处您正在检查前一个数字的剩余部分。一旦剩余部分变为0,循环将结束,因为没有进一步的更改。您应该查找当前数字的剩余部分。此处您正在检查前一个数字的剩余部分。一旦剩余部分变为0,循环将结束变成0,循环就结束了,因为没有进一步的改变。凯万,你先生太棒了,凯万,你先生太棒了