Ошибка инициализации переменной и условия (Java)

Прошу меня простить за возможную тупость, только недавно начал учить Java. Пытался искать решение в интернете, но тщетно. Пробовал присвоить значения 0 переменным, но в итоге выдает сумму тоже 0, так что этот вариант не подходит. Подскажите пожалуйста, можно ли заставить эту программу работать правильно?

import java.util.Scanner;

public class TEST {
    public static void main(String[] args) {
        Scanner a = new Scanner(System.in);
        Scanner b = new Scanner(System.in);
        int num1;
        int num2;
        int c = num1 + num2; // ошибка здесь

        System.out.print("Input first number: ");

        if (a.hasNextInt())
            num1 = a.nextInt();
        else
            System.out.println("This in not number, please restart your program.");

        System.out.print("Input second number: ");

        if (b.hasNextInt())
            num2 = b.nextInt();
        else
            System.out.println("This in not number, please restart your program.");

        System.out.println(c);
    }
}


Ответы (1 шт):

Автор решения: стасевич
  1. Локальные переменные не имеют значений по умолчанию.

  2. Обращение к локальным переменным должно быть выполнено только после того, как они будут инициализированы. т.е. объявив int num1; и если не присвоить ей значение, и попытаться совершить какие-либо действия получим ошибку. int c = num1 + num2; // ошибка здесь
    надо сразу инициализировать переменные нулями

     int num1 = 0;
     int num2 = 0;
    

следовательно чтобы всё заработало надо выражение

 int c = num1 + num2; // ошибка здесь

переместить "вниз" программы, перед System.out.println(c);, чтобы сложение происходило после считывания и присваивания с клавиатуры.

→ Ссылка