Ошибка инициализации переменной и условия (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 шт):
Локальные переменные не имеют значений по умолчанию.
Обращение к локальным переменным должно быть выполнено только после того, как они будут инициализированы. т.е. объявив
int num1;и если не присвоить ей значение, и попытаться совершить какие-либо действия получим ошибку.int c = num1 + num2; // ошибка здесь
надо сразу инициализировать переменные нулямиint num1 = 0; int num2 = 0;
следовательно чтобы всё заработало надо выражение
int c = num1 + num2; // ошибка здесь
переместить "вниз" программы, перед System.out.println(c);, чтобы сложение происходило после считывания и присваивания с клавиатуры.