Java while循环-偶数及其平均数之和

Java while循环-偶数及其平均数之和,java,Java,代码执行,它对偶数求和。但是,当输入奇数时,它返回错误或中断。我希望它忽略任何奇数。我的代码怎么了?你继续奇数循环而不修改num-对我来说应该是无限循环。你继续奇数循环而不修改num-对我来说应该是无限循环。我是否遗漏了什么,或者,当您有一个奇数时,是否缺少一个nextInt()?因为在if中,即使您有num=scan.nextInt()。当num为奇数时,您不需要。 改变 到 当你有一个奇数时,是我遗漏了什么,还是你遗漏了一个nextInt()?因为在if中,即使您有num=scan.next


代码执行,它对偶数求和。但是,当输入奇数时,它返回错误或中断。我希望它忽略任何奇数。我的代码怎么了?

继续
奇数循环而不修改
num
-对我来说应该是无限循环。

继续
奇数循环而不修改
num
-对我来说应该是无限循环。

我是否遗漏了什么,或者,当您有一个奇数时,是否缺少一个
nextInt()
?因为在if中,即使您有
num=scan.nextInt()。当num为奇数时,您不需要。
改变


当你有一个奇数时,是我遗漏了什么,还是你遗漏了一个
nextInt()
?因为在if中,即使您有
num=scan.nextInt()。当num为奇数时,您不需要。
改变

改为:

package javaapplication9;


import java.text.DecimalFormat;
import java.util.Scanner;

public class JavaApplication9 {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here
    {
        int sum = 0, num, count = 0;
        double average;

        Scanner scan = new Scanner(System.in);

        System.out.print("Enter an integer (0 to quit): ");
        num = scan.nextInt();

        while (num >= 0) // sentinel num of 0 to terminate loop
        {
            if (num % 2 == 0)
            {
                count++;

                sum += num;
                System.out.println("The sum so far is " + sum);

                System.out.print("Enter an integer (0 to quit): ");
                num = scan.nextInt();            

               if (count == 0) {
                 System.out.println("No nums were entered.");
               } else {
                 average = (double) sum / count;
                 DecimalFormat fmt = new DecimalFormat("0.###");
                 System.out.println("The average is " + fmt.format(average));
               }
          }              
          num = scan.nextInt();               
      }
}
改为:

package javaapplication9;


import java.text.DecimalFormat;
import java.util.Scanner;

public class JavaApplication9 {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here
    {
        int sum = 0, num, count = 0;
        double average;

        Scanner scan = new Scanner(System.in);

        System.out.print("Enter an integer (0 to quit): ");
        num = scan.nextInt();

        while (num >= 0) // sentinel num of 0 to terminate loop
        {
            if (num % 2 == 0)
            {
                count++;

                sum += num;
                System.out.println("The sum so far is " + sum);

                System.out.print("Enter an integer (0 to quit): ");
                num = scan.nextInt();            

               if (count == 0) {
                 System.out.println("No nums were entered.");
               } else {
                 average = (double) sum / count;
                 DecimalFormat fmt = new DecimalFormat("0.###");
                 System.out.println("The average is " + fmt.format(average));
               }
          }              
          num = scan.nextInt();               
      }
}

在continue语句之前添加以下代码。我希望它能正常工作

System.out.print("Enter an integer (0 to quit): ");
            num = scan.nextInt();

在continue语句之前添加以下代码。我希望它能正常工作

System.out.print("Enter an integer (0 to quit): ");
            num = scan.nextInt();

试试这个。我不太确定何时要打印平均值,如果要在最后打印,可以将其移出while循环

public static void main(String[] args) {
    // TODO code application logic here
    {
        int sum = 0, num, count = 0;
        double average;

        Scanner scan = new Scanner(System.in);

        System.out.print("Enter an integer (0 to quit): ");

        while ((num = scan.nextInt())> 0) // sentinel num of 0 to terminate loop
        {
            if (num % 2 == 0){
                count++;

                sum += num;
                System.out.println("The sum so far is " + sum);
                if (count == 0) {
                    System.out.println("No nums were entered.");
                } else {
                    average = (double) sum / count;

                    DecimalFormat fmt = new DecimalFormat("0.###");
                    System.out.println("The average is " + fmt.format(average));
                }
            }

            System.out.print("Enter an integer (0 to quit): ");

        }
        System.out.println("end");
    }
}

试试这个。我不太确定何时要打印平均值,如果要在最后打印,可以将其移出while循环

public static void main(String[] args) {
    // TODO code application logic here
    {
        int sum = 0, num, count = 0;
        double average;

        Scanner scan = new Scanner(System.in);

        System.out.print("Enter an integer (0 to quit): ");

        while ((num = scan.nextInt())> 0) // sentinel num of 0 to terminate loop
        {
            if (num % 2 == 0){
                count++;

                sum += num;
                System.out.println("The sum so far is " + sum);
                if (count == 0) {
                    System.out.println("No nums were entered.");
                } else {
                    average = (double) sum / count;

                    DecimalFormat fmt = new DecimalFormat("0.###");
                    System.out.println("The average is " + fmt.format(average));
                }
            }

            System.out.print("Enter an integer (0 to quit): ");

        }
        System.out.println("end");
    }
}

“它返回一个错误”。为什么呢有例外吗?或者,在错误情况下,程序的输出是什么?顺便说一下,您的代码示例中缺少一个括号,它不会以这种方式编译-是否应该在
System.out.println()之前有一个括号?“它返回一个错误”。为什么呢有例外吗?或者,在错误情况下,程序的输出是什么?顺便说一下,您的代码示例中缺少一个括号,它不会以这种方式编译-是否应该在
System.out.println()之前有一个括号?不。这些项目不起作用。我试过了。即使我将else if(num%2!=0){continue;}添加到else if(num%2!=0){num=scan.nextInt();continue;}中,您的
continue
会将您直接返回while循环的顶部。否。那些东西不行。我试过了。即使我将else if(num%2!=0){continue;}添加到else if(num%2!=0){num=scan.nextInt();continue;}您的
continue
会将您直接返回while循环的顶部。如果一个数字是奇数,我希望它忽略奇数并继续。最后,我希望它只对偶数求和。尝试在if语句之前打印数字。。。然后你会看到号码没有被加上。。。或者将num=scan.nextInt()从else if部分中删除到“while”语句之后。不管是谁,请确保调用了这个过程(nextInt),否则本质上会有一个while(true)循环。如果一个数字是奇数,我希望它忽略奇数并继续。最后,我希望它只对偶数求和。尝试在if语句之前打印数字。。。然后你会看到号码没有被加上。。。或者将num=scan.nextInt()从else if部分中删除到“while”语句之后。不管是谁,请确保调用了这个过程(nextInt),否则本质上会有一个while(true)循环实际上我希望它是一个无限循环,直到用户输入一个负数为止。当您输入奇数时,它将中断:(用你的代码。它只是给你一个平均值。实际上我希望它是一个无限循环,直到用户输入一个负数。当你输入一个奇数时,它就会中断。)(用你的代码。它只是给你一个平均值。