-3

Sample input : 3456 Sample output : Digits : 3, 4, 5, 6 Sum : 18

This is the code that I had try, but unfortunately it is wrong since i do not use loop.Please anybody can help me?

import java.util.Scanner;

public class Lab1_5 {
    public static void main (String args[])
    {
        int insert1, insert2, insert3, insert4;
        int sum ;

        Scanner console = new Scanner(System.in);

         System.out.print("Please enter First Number: ");
         insert1 =console.nextInt();
         System.out.print("Please enter Second Number: ");
         insert2 =console.nextInt();
         System.out.print("Please enter Third Number: ");
         insert3 =console.nextInt();
         System.out.print("Please enter Fourth Number: ");
         insert4 =console.nextInt();

         System.out.println("Digits: "+ insert1+","+insert2+","+insert3+","+insert4);

         sum = insert1+insert2+insert3+insert4;
         System.out.print("Sum: "+ sum);

    }

}
user5563
  • 9
  • 1

3 Answers3

0

Here's how you can get the sum with a loop:

What this does is it gets one number from the user and loops trough the individual digits of the number.

public static void main(String[] args)
{
    int sum = 0;

    Scanner console = new Scanner(System.in);

    System.out.print("Please enter a Number: ");
    String num = console.nextLine();

    try
    {
        num = num.trim();
        int index = 0;
        int n = Integer.parseInt(num);

        System.out.print("Digits: ");
        while (n > 0)
        {
            int digit = n % 10;
            sum += n % 10;
            n = n /10;

            char d = num.charAt(index++);

            System.out.print(d + ", ");
        }

        System.out.print("Sum: " + sum);
    }
    catch (NumberFormatException e)
    {
        System.out.print("Invalid Number entered");
    }   

    // Close the scanner
    console.close();
}

Here is another version that won't give you an integer overflow for input values over Integer.MAX_VALUE.

public static void main(String[] args)
{
    int sum = 0;

    Scanner console = new Scanner(System.in);

    System.out.print("Please enter a Number: ");
    String num = console.nextLine();

    try
    {
        num = num.trim();

        System.out.print("Digits: ");

        for (int i = 0; i < num.length(); i++)
        {
            char d = num.charAt(i);
            int n = Integer.parseInt(String.valueOf(d));

            sum += n;

            System.out.print(d + ", ");
        }

        System.out.print("Sum: " + sum);
    }
    catch (NumberFormatException e)
    {
        System.out.print("Invalid Number entered");
    }       

    console.close();
}
Michael Markidis
  • 4,093
  • 1
  • 11
  • 21
0

You can use a for loop as seen in this example:

public static void main(String args[]){
  int sum = 0;
  Scanner sc = new Scanner(System.in);

  System.out.println("Number: ");
  //get number input:
  int num = sc.nextInt(); 

  //convert number to String:
  String str = Integer.toString(num);

  //iterate through each char in string:
  for(int i = 0; i < str.length(); i++){
    //convert char value to int, and add it to the sum:
    sum += Character.getNumericValue(str.charAt(i));
  }
}
Arman
  • 615
  • 2
  • 6
  • 20
0
public class Lab1_5 {
    public static void main (String args[])
    {
        int insert;
        int sum ;
        int[] numArray = new int[4];
        Scanner console = new Scanner(System.in);

         for(int i=0; int<4; i++){
             if(i == 1) {
                 System.out.println("Please enter First Number: ");
             } else {
                 System.out.println("Please enter the next Number: ");
             }
             numArray[i] = console.nextInt();
             sum += numArray[i];
         }

         System.out.println("Digits: "+ numArray[0]+","+numArray[1]+","+numArray[2]+","+numArray[3]);

         System.out.println("Sum: "+ sum);

    }

}