Java 编写一个程序,读取一组整数并打印偶数和奇数整数之和

Java 编写一个程序,读取一组整数并打印偶数和奇数整数之和,java,Java,这就是我目前所拥有的。我应该用一个For循环和if/else语句来编写这段代码,但是/我一直在思考如何正确地完成它。如果有人能告诉我如何正确使用For循环和if/else语句,而不是给出答案,那就太好了: import java.util.*; public class SumEvenOdd { public static void main(String []args) { Scanner keyboard= new Scanner(System.in);

这就是我目前所拥有的。我应该用一个
For
循环和
if/else
语句来编写这段代码,但是/我一直在思考如何正确地完成它。如果有人能告诉我如何正确使用
For
循环和
if/else
语句,而不是给出答案,那就太好了:

import java.util.*;

public class SumEvenOdd
{
    public static void main(String []args)
    {
        Scanner keyboard= new Scanner(System.in);

        int counter;
        int i= 0;
        int num=0;
        int sumOdd= 0;
        int sumEven= 0;

        System.out.println("Enter integers other then Zero: ");
        num=keyboard.nextInt();

        System.out.println("The numbers you entered are: ");

        for (i =num; i !=0; i=i)
                {
                    if (i % 2 == 0)
                        sumEven = sumEven + i;
                    else
                        sumOdd = sumOdd + i;
                    i = keyboard.nextInt();
                }
        System.out.println("Even sum: " + sumEven);
        System.out.println("Odd sum: " + sumOdd);
    }
}

在应用程序中,只要不输入0,就不需要for循环,因为您正在中断循环

for循环用于迭代集合(对于每个循环)或迭代递增计数器,直到满足中断(经典for循环)


do-while(i!=0)循环在您的场景中更合适

在应用程序中,只要不输入0,就不需要for循环,因为您正在中断循环

for循环用于迭代集合(对于每个循环)或迭代递增计数器,直到满足中断(经典for循环)

do-while(i!=0)循环在您的场景中更合适

您的循环从不执行,因为您的循环条件从一开始就是错误的:

for (i =num; i !=0; i=i) // i already equals 0 so i != 0 equates to false
你也不会用
i=i
递增或递减,所以即使你的条件为真,你也会陷入无限循环。在for循环的每次迭代中,使用
i++
i
的值增加1

此外,您仅从用户处接收一个号码。处理这个问题的一个简单方法是,首先询问用户他们想先输入多少个数字,然后使用该输入循环多次,要求对这些数字求和。例如:

System.out.println(“您想输入多少数字?”);
num=键盘.nextInt();
int[]addthis=新int[num];//创建大小为num的数组以存储数字
for(int i=0;i
编辑 你把自己(和我)和你的书面陈述搞混了。你的程序运行得很好,但我认为你没有意识到这一点

在循环中添加类似的内容,以便您知道它正在等待输入:

if (i % 2 == 0)
    sumEven = sumEven + i;
else
    sumOdd = sumOdd + i;

System.out.print(": ");  // <-- let the user know you're expecting more input   
i = keyboard.nextInt();
if(i%2==0)
sumEven=sumEven+i;
其他的
sumOdd=sumOdd+i;
系统输出打印(“:”)// 您的循环从未执行,因为您的循环条件一开始为false:

for (i =num; i !=0; i=i) // i already equals 0 so i != 0 equates to false
你也不会用
i=i
递增或递减,所以即使你的条件为真,你也会陷入无限循环。在for循环的每次迭代中,使用
i++
i
的值增加1

此外,您仅从用户处接收一个号码。处理这个问题的一个简单方法是,首先询问用户他们想先输入多少个数字,然后使用该输入循环多次,要求对这些数字求和。例如:

System.out.println(“您想输入多少数字?”);
num=键盘.nextInt();
int[]addthis=新int[num];//创建大小为num的数组以存储数字
for(int i=0;i
编辑 你把自己(和我)和你的书面陈述搞混了。你的程序运行得很好,但我认为你没有意识到这一点

在循环中添加类似的内容,以便您知道它正在等待输入:

if (i % 2 == 0)
    sumEven = sumEven + i;
else
    sumOdd = sumOdd + i;

System.out.print(": ");  // <-- let the user know you're expecting more input   
i = keyboard.nextInt();
if(i%2==0)
sumEven=sumEven+i;
其他的
sumOdd=sumOdd+i;
系统输出打印(“:”)//<代码>扫描仪输入=新扫描仪(System.in);
int-num;
int i;
int x=0;
int y=0;
System.out.print(“要输入的数字:”);
i=input.nextInt();
对于(;;){
我--;
系统输出打印(“请输入一个数字:”);
num=input.nextInt();
如果(数值%2==0){
x=x+num;
}否则{
y=y+num;
}
if(num<0){
系统输出打印(“Inivald输入”);
系统出口(0);
}
如果(i==0){
System.out.println(“偶数之和为:“+x”);
System.out.println(“奇数之和为:“+y”);
系统出口(0);
}
}
扫描仪输入=新扫描仪(System.in);
int-num;
int i;
int x=0;
int y=0;
System.out.print(“要输入的数字:”);
i=input.nextInt();
对于(;;){
我--;
系统输出打印(“请输入一个数字:”);
num=input.nextInt();
如果(数值%2==0){
x=x+num;
}否则{
y=y+num;
}
if(num<0){
系统输出打印(“Inivald输入”);
系统出口(0);
}
如果(i==0){
System.out.println(“偶数之和为:“+x”);
System.out.println(“奇数之和为:“+y”);
系统出口(0);
}
}
如果您想在while循环中找到答案

import java.util.*;
/*
解释
问题:编写一个程序,读取一组整数,并告诉偶数和奇数之和
第一:初始化4个变量(所有整数)
第二:输入并打印标题
第三:进行一个while循环,当我小于
第四:输入数字,检查条件od或偶数,然后添加数字
第五:如果输入=
*/
公务舱
{
公共静态void main(字符串[]args)
{
//初始化变量
int InputNums=0,OddNums=0,EvenNums=0,loopingVar=0,PrintAmount;
//初始化扫描程序类
扫描仪=新的扫描仪(System.in);
//使用扫描仪输入
System.out.print(“要输入的数字:”);
P
import java.util.*;

/*
EXPLANATION
Question: write a program that reads a set of integers and tells the sum of the even and odd numbers
First: Initialize 4 variables(all integers)
Second: Take input and print title
Third: Take a while loop that will run when i is smaller than a
Fourth: take inputs of the numbers and check for condition od or even and add the numbers
Fifth: Break the while loop if input = 
*/

public class EvenOddSum
{
    public static void main(String[]args)
    {
        //initializing variables
        int InputNums = 0, OddNums = 0, EvenNums = 0, loopingVar = 0, PrintAmount;

        //initializing scanner class
        Scanner scanner = new Scanner(System.in);

        //Input using Scanner
        System.out.print("How many numbers you want to input: ");
        PrintAmount = scanner.nextInt();

        //Loop to execute if PrintAmount is bigger than or equal to The loop Variable
        while(loopingVar <= PrintAmount)
        {
            //increase Loop Variable by 1 if it is smaller than PrintAmount
            loopingVar++;

            //The input which will be sorted into odd or even
            System.out.print("Please input a number : ");
            InputNums = scanner.nextInt();

            //Conditional statements to Sort Input into Odd or even
            if (InputNums % 2 == 0)
            {
                //store input numbers into OddNums var if it is not divisible by 2
                OddNums = OddNums + InputNums;
            }
            else
            {
                //store input numbers into EvenNums var if it is divisible by 2
                EvenNums = EvenNums + InputNums;
            }

            if(loopingVar == PrintAmount)
            {
                //If the loop variable is equal to the print amount the break will end the loop
                break;
            }
        }

        //if the condition is true the sums are printed and the code is stopped
        if (loopingVar == PrintAmount)
        {
            System.out.println("Sum of even numbers is : " + OddNums);
            System.out.println("Sum of odd numbers is : " + EvenNums);
            System.exit(0);
        }

        //if InputNums is smaller than 0 there has been some error in the code
        if (InputNums < 0)
        {
            System.out.print("Invalid input");
            System.exit(0);
        }
    }
}