Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当循环条件为';应该是的_Java_Loops_While Loop_Conditional Statements - Fatal编程技术网

Java 当循环条件为';应该是的

Java 当循环条件为';应该是的,java,loops,while-loop,conditional-statements,Java,Loops,While Loop,Conditional Statements,我正在做一项作业,将两个用户输入之间的所有偶数相加。例子;userNum1=3,userNum2=12。这两个数字也包括在加法中(只有偶数时)。 我已经检查了一个小时的while循环条件,似乎不明白为什么当添加的数字是用户的第二个数字(在本例中为12)时,它没有停止 这是我的密码 int evenCount = 0; int evenSum = 0; int oddNumberFixer = 0; int evenAddNumber = 0; while (evenAddNumber <

我正在做一项作业,将两个用户输入之间的所有偶数相加。例子;userNum1=3,userNum2=12。这两个数字也包括在加法中(只有偶数时)。 我已经检查了一个小时的while循环条件,似乎不明白为什么当添加的数字是用户的第二个数字(在本例中为12)时,它没有停止

这是我的密码

int evenCount = 0;
int evenSum = 0;
int oddNumberFixer = 0;
int evenAddNumber = 0;

while (evenAddNumber <= num2 || evenCount < num2)
    {   
        oddNumberFixer = num1 + 1;

        if ((num1 % 2) != 0)
        {

            evenAddNumber = oddNumberFixer + evenCount;

            evenSum = evenAddNumber + evenSum;
            evenCount = evenCount + 2;



        }
        else 
        {
            evenAddNumber = num1 + evenCount;
            evenSum = evenAddNumber + evenSum;
            evenCount = evenCount + 2;

        }

    }
    System.out.println("The sum of the included evens is " + evenSum);
int evenCount=0;
int evenSum=0;
int oddNumberFixer=0;
int evenAddNumber=0;

虽然(evenAddNumber你需要考虑你的算法需要做什么。请注意,无论你的数字是否为偶数,你都在增加evenSum。此外,你只需要检查一次数字是否为偶数。这可能看起来很明显,但一旦你知道一个数字是偶数,加2总是会得到另一个偶数。该算法可能会简单得多在开始编写代码之前,您花了更多的时间来考虑它

在开始循环之前,您可以尝试确保数字为偶数。然后您可以尝试

for(int i = yourEvenNumber; i <= num2; i+=2) {
    //add them up here    
}

for(int i=yourEvenNumber;i我不确定为什么要使用while循环,这似乎是for循环类型的应用程序。如果进行了一些初始化,确保第一个数字是要添加的第一个偶数,则可以一次通过2,即:

int first = num1;

if(first % 2 == 1)
    first++;

for(int i = first; i <= num2; i += 2)
{
    //summing code
}
int first=num1;
如果(第一个%2==1)
第一++;

对于(inti=first;我不只是盯着代码看,而是使用调试器逐行检查代码。这将允许您在执行过程中检查变量的值。