com.javarush.task.pro.task03.task0305
я только щас врубился что первую считываемую строку можно не писать
на какой строке в коде написано что первый scanner.nextInt не равен второму?
какая часть кода показывает что все scanner.nextlnt не равны?
if (a == b) {
if (a == c) {
System.out.println(c + " " + c + " " + c);
} else {
System.out.println(b + " " + b);
}
} else if (a == c) {
System.out.println(c + " " + c);
} else if (b == c) {
System.out.println(c + " " + c);}
почему правильное решение не использует значение !=
чё я уже только не перепробовал так и не понял логику решения
эта задача очень сложная она должна быть с комментариями,даже на форуме ничего не понятно кроме того что все её решили подсмотрев решение Получается так что я начинаю изучать курс совсем другого учебного центра потому что тут на ява раш ничего не понятно:((((
Roman Tsykarev
3 уровень
скажите такая логика решения правильная?
Решен
Комментарии (11)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Александр
5 декабря 2021, 09:33
Если Вам это поможет - по моему мнению логика в простом переборе вариантов сравнения трех чисел.
0
Александр
5 декабря 2021, 09:31
if (a == b && a == c && b == c)
System.out.println(a + " " + b + " " + c);
else
{
if (a == b && a != c && b != c)
System.out.println(a + " " + b);
else
{
if (a != b && a == c && b != c)
System.out.println(a + " " + c);
else
{
if (b == c && a != b && a != c)
System.out.println(b + " " + c);
}
}
}
0
Стас ПасинковSoftware Developer в ZipyMaster
18 ноября 2021, 02:11
!= не используется потому что используется else, а значит проверять неверность уже проверенных ранее условий - нет необходимости.
+1
Roman Tsykarev
18 ноября 2021, 09:46
!= не используется но это ясно только если подсмотреть готовое решение,в задаче же не сказано что его нельзя использовать
if (a == b) {
if (a == c) {
System.out.println(a + " " + b + " " + c);
} else {
System.out.println(a + " " + b);
}
если они равны то писать все три или писать только a + " " + b
а если a + " " + b не равны?
я напишу 099 и по этому должно написаиь 09
я это так понимаю
0
Стас ПасинковSoftware Developer в ZipyMaster
18 ноября 2021, 09:56
я и не говорил, что != нельзя использовать.
я лишь подтвердил, что оно избыточно, когда мы используем else
вот эти куски кода - равнозначны
и
или даже
просто первый вариант для многих удобнее
+2
Roman Tsykarev
18 ноября 2021, 10:13
да но почему то у всех одинаковый ответ,читаешь форум и везде решение как в правильном ответе
мне не понятно почему в правильном ответе если
A B C равны то писать все три или писать только A B,а если A B не равны?
if (a == b) {
if (a == c) {
System.out.println(a + " " + b + " " + c);
} else {
System.out.println(a + " " + b)
}
я этот кусок кода понимаю так:
если А =Б если А=С то принтить АБС
Или принтить только АБ
но почему принтить только АБ я не понимаю
почему не БС?
почему не АС?
почему именно АБ?
как алгоритм понимает что АБ равны
0
Стас ПасинковSoftware Developer в ZipyMaster
18 ноября 2021, 15:24
как алгоритм понимает что АБ равны
в первом ифе ведь:
если мы зашли внутрь этого ифа - значит мы уже знаем, что у нас точно а и б равны.
и теперь мы проверяем, а вдруг еще и ц тоже равно? тогда ведь получится что все 3 равны, и мы напечатаем все три.
ну а если вдруг оказалось, что ц не равно - то ведь все-равно получается, что а и б ведь все-равно равны между собой - поэтому и выводим их на экран
мое решение этой задачи было другим
лично мне так проще было написать
ведь одну и ту же задачу можно решить разными способами. правильное решение - это лишь один из способов (и не всегда самый лучший)
+3
Fleser
17 ноября 2021, 22:48
Не совсем понятно, что за задача, из какого уровня и из какой лекции.
+1
Roman Tsykarev
17 ноября 2021, 22:53
task03.task0305
три числа
0
Fleser
17 ноября 2021, 23:16
Метод считывает значение из буфера. Для того чтобы работать с ним, нужно его значение которое он считал сохранить в какую нибудь переменную
Например так:
Таким же образом нужно получить еще два значения и сохранить их так же в любые перменные (например b и c).
После этого нужно через условие if сделать проверки для переменных a, b и c.
Например так (проверяем равны ли три числа между собой):
И сделать проверки для оставшихся вариантов: a == b, b == c, c == a.
+1
Roman Tsykarev
17 ноября 2021, 23:20
вот я сделал у меня не получается,а подглядев готовое решение я ввобще не понял ничего
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = scanner.nextInt();
if (a == b) {
if (a == c) {
System.out.println(c + " " + c + " " + c);
}
if (a !=b)
if (a==c)
{
System.out.println(a + " " + c);
}
if (a != c)
if(a==b)
{
System.out.println(a + " " + b);
}
if (a!=b)
if (b == c) {
System.out.println(b + " " + c);
}
}}}
0