package com.javarush.task.task02.task0216;
/*
Минимум трёх чисел
*/
public class Solution {
public static int min(int a, int b, int c) {
int m;
if (a <= b)
{
if (a <= c)
{
m = a;
}
else
{
if (c <= b)
m = c;
}
}
else
if (b <= c)
{
m = b;
}
else
m = c;
return m;
}
public static void main(String[] args) throws Exception {
System.out.println(min(1, 2, 3));
System.out.println(min(-1, -2, -3));
System.out.println(min(3, 5, 3));
System.out.println(min(5, 5, 10));
}
}
Влада Буртник
16 уровень
Прога не компилится, помогите, пожалуйста, найти проблему. variable m might not have been initialized: Solution.java, line: 28, column: 16
Решен
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
RiccioMaster
10 ноября 2018, 10:21
Скажите, пожалуйста, а почему вы так пишите логику сравнения?
0
Илья ГековMaster
29 сентября 2018, 09:44
Инициализируйте переменную m при объявлении каким-либо начальным значением
0
Влада Буртник
29 сентября 2018, 10:57
Спасибо большое, работает.
0
Maitri
29 сентября 2018, 22:38
и у меня заработало. Но почему? ведь в прошлом задании срабатывало и без этого?
0
Илья ГековMaster
29 сентября 2018, 23:03полезный
Метод min должен вернуть значение типа int, а так как переменная m, значение которой возвращается как результат работы метода, инициализируется лишь в блоках условий (причем условий вложенных в друг друга), компилятор не видит, будет ли данная переменная инициализирована в любом случае или нет и выводит сообщение о том, что переменная m возможно не будет инициализирована.
Причем в данном примере все дело именно во вложенных в друг друга условиях, если к примеру вложенных условий не было бы, то компилятор бы увидел, что переменная будет инициализирована в любом случае и пропустил бы такой вариант:
p.s. это не решение задачи, просто пример, что при таком простом условии, компилятор пропустит неинициализированную заранее переменную m. +2
Maitri
30 сентября 2018, 00:09
Понятно!! Спасибо большое за разъяснение.
Вопросов на каждой лекции миллион! Здорово, что на некоторые получается получить понятный ответ!
0
Anonymous #1950992
9 ноября 2018, 21:07
я видимо тупой раз не понимаю подобные разжовывания(((((
+2