Answer:
Here is the JAVA program:
import java.util.Scanner; //to take input from user
public class Main{
public static void main(String[] args) { //start of main function
Scanner input = new Scanner(System.in); // creates Scanner class object
int num, integer, odd = 0, even = 0; //declare variables
System.out.print("Enter the number of integers: "); //prompts user to enter number of integers
num = input.nextInt(); //reads value of num from user
System.out.print("Enter the integers:\n"); //prompts user to enter the integers
for (int i = 0; i < num; i++) { //iterates through each input integer
integer = input.nextInt(); // reads each integer value
if (integer % 2 == 0) //if integer value is completely divisible by 2
even += integer; //adds even integers
else //if integer value is not completely divisible by 2
odd += integer; } //adds odd integers
System.out.print("Sum of Even Numbers: " + even); //prints the sum of even integers
System.out.print("\nSum of Odd Numbers: " + odd);//prints the sum of odd integers
}}
Explanation:
The program is explained in the comments mentioned with each line of the code. I will explain the logic of the program with the help of an example.
Suppose user wants to input 5 integers. So,
num = 5
Suppose the input integers are:
1, 2 , 3, 4, 5
for (int i = 0; i < num; i++) is a for loop that has a variable i initialized to 0. The condition i<num is true because i=0 and num=5 so 0<5. Hence the statements inside body of loop execute.
At first iteration:
integer = input.nextInt(); statement reads the value of input integer. The first integer is 1
if (integer % 2 == 0) checks if integer is completely divisible by 2. The modulo operator is used which returns the remainder of the division and if this remainder is equal to 0 then it means that the integer is completely divisible by 2 and if the integer is completely divisible by 2 then this means the integer is even. 1%2 returns 1 so this means this condition evaluates to false and the integer is not even. So the else part executes:
odd += integer; this becomes:
odd = odd + integer
odd = 1
Now the value of i is incremented to 1 so i=1
At second iteration:
integer = input.nextInt(); statement reads the value of input integer. The first integer is 2
if (integer % 2 == 0) checks if integer is completely divisible by 2. 2%2 returns 0 so this means this condition evaluates to true and the integer is even. So
even += integer; this becomes:
even= even+ integer
even = 2
Now the value of i is incremented to 1 so i=2
At third iteration:
integer = input.nextInt(); statement reads the value of input integer. The first integer is 3
if (integer % 2 == 0) checks if integer is completely divisible by 2. 3%2 returns 1 so this means this condition evaluates to false and the integer is odd. So
odd += integer; this becomes:
odd= odd + integer
odd= 1 + 3
odd = 4
Now the value of i is incremented to 1 so i=3
At fourth iteration:
integer = input.nextInt(); statement reads the value of input integer. The first integer is 4
if (integer % 2 == 0) checks if integer is completely divisible by 2. 4%2 returns 0 so this means this condition evaluates to true and the integer is even. So
even+= integer; this becomes:
even = even + integer
even = 2 + 4
even = 6
Now the value of i is incremented to 1 so i=4
At fifth iteration:
integer = input.nextInt(); statement reads the value of input integer. The first integer is 5
if (integer % 2 == 0) checks if integer is completely divisible by 2. 5%2 returns 1 so this means this condition evaluates to false and the integer is odd. So
odd+= integer; this becomes:
odd= odd+ integer
odd= 4 + 5
odd = 9
Now the value of i is incremented to 1 so i=5
When i=5 then i<num condition evaluate to false so the loop breaks. The next two print statement prints the values of even and odd. So
even = 6
odd = 9
Hence the output is:
Sum of Even Numbers: 6 Sum of Odd Numbers: 9