import java.util.Scanner;
public class finnTall {
public static void main(String[]args){
int antallTall;
int antallLest;
double nesteTall;
double minsteVerdi;
double nestMinsteVerdi;
Scanner tast = new Scanner(System.in);
System.out.println("Hvor mange tall?");
antallTall = tast.nextInt();
tast.nextLine();
antallLest= 1;
System.out.println("Skriv første tall: ");
minsteVerdi = tast.nextDouble();
tast.nextLine();
for(antallLest=1;antallTall>antallLest;antallLest++){
System.out.printf("Skriv %d. tall: ",antallLest+1);
nesteTall = tast.nextDouble();
tast.nextLine();
if(nesteTall>minsteVerdi)
nestMinsteVerdi=nesteTall;
if(nesteTall<minsteVerdi)
nesteTall = minsteVerdi;
if(nesteTall>minsteVerdi && nesteTall<nestMinsteVerdi)
nestMinsteVerdi = nesteTall;
}
System.out.printf("Minste verdien av tallene du har oppgitt er: %f\n",minsteVerdi);
System.out.printf("Nest minste verdi av tallene du har oppgitt er: %f\n",nestMinsteVerdi);
tast.close();
}
}
Это программа, предназначенная для расчета самого низкого и второго наименьшего числа, которое предоставляет пользователь.Переменная не была инициализирована
По какой-то причине в нем говорится, что локальная переменная nestMinsteVerdi
не инициализирована, и я не могу понять, почему и где ошибка. Я боролся с этим в течение хороших 2 часов.
Заранее спасибо.
Я получаю то, что вы говорите, но в то же время я этого не делаю. Что в коде нуждается в изменении? im не видеть прямой –
Вам нужно убедиться, что перед тем, как вы попытаетесь использовать его, 'nestMinsteVerdi' получает значение независимо от того, какой путь через код выполняется во время выполнения. Один из способов сделать это - предоставить значение по умолчанию в своем объявлении - «double nestMinsteVerdi = 0.0» (или любое другое значение). Другим может быть случай 'else' для' if (nesteTall> minsteVerdi) '. –
@Bendik Третий способ - следить за тем, нашли ли вы значение для него и задали его, скажем, с помощью переменной флага 'boolean', а не распечатывать ее в конце, если вы никогда не нашли значения назначить ему. –