Search code examples
javastringsuminteger

String cannot be converted to int. How to sum scanned ints in Java?


I wrote this simple program to sum ints input by the user, but when I compile it, it says that "String cannot be converted to int." What is wrong in this program?

import java.util.*;

public class Pr6{
    public static void main(String[] args){
        Scanner scan = new Scanner (System.in);
        int num1;
        int num2;
        int num3;
        int sum;

        System.out.print("Please write an integer: ");
        num1 = scan.nextLine();

        System.out.print("Please write an integer: ");
        num2 = scan.nextLine();

        System.out.print("Please write an integer: ");
        num3 = scan.nextLine();

        sum = num1 + num2 + num3;
        System.out.print("Total = " + sum);
    }
}

Solution

  • Here is your issue

    num1 = scan.nextLine();
    

    Let's look at what data type num1 is:

    int num1;
    

    scan.nextLine() will return a String. And you can't have int num1 = "1", because they are different data types.

    You should use scan.nextInt(). It will return a number. That'll solve your problems :)

    So you'll have num1 = scan.nextInt(), num2 = scan.nextInt(), and num3 = scan.nextInt().

    I hope that helps. Good luck!