В курсе нам предлагается такой код для поиска минимального из 2-х чисел.

public static int min(int a, int b)
    {
        int m;
        if (a>b) m = b;
        else m = a;
        return m;//напишите тут ваш код

    }

А что если a и b равны? В задании я написал так:

public static int min(int a, int b)
    {
        int m;
        if (a>b) m = b;
        if (a<b) m = a;
        return m;//<=ошибка ссылается на эту строку.

    }

иии... получаю ошибку компилятора что-то типа не могу инициализировать m. Почему? Это баг?

задан 10 Янв, 12:06

MarkTrade's gravatar image

MarkTrade
164
одобрено: 16%

изменено 10 Янв, 12:08


Как-то так

public static int min(int a, int b)
{
    return a <= b ? a : b;
}
ссылка

опубликован 10 Янв, 12:27

name_is_null's gravatar image

name_is_null
734
одобрено: 20%

изменено 10 Янв, 12:28

Еще учти что нет такого оператора сравнения "<>"

(10 Янв, 12:29) name_is_null

практика показывает, что "баги" в системе отлавливаются "экспертами" в основном в начале курса))) потом "эксперты" понимают, что дело-то не в системе ))))

ссылка

опубликован 12 Янв, 01:28

%D0%90%D0%BF%D0%BF%D0%BE%D0%BB%D0%B8%D0%BD%D0%B0%D1%80%D0%B8%D0%B9's gravatar image

Апполинарий
99628
одобрено: 22%

я как то в поддержку написала, что глючит у них курс. потому что задача принялась, но вывела неведомую фигню. надо было ввести строку и число (или число и строку) код я написала правильно, а вот вводила не в том порядке, компилятор выругался, но задача принялась - глюк)

(12 Янв, 04:39) Lexa_Morgens...

Это тернарный оператор (в интернете инфо), аналогичен следующему

if (a <= b)
{
    return a;
} else
{
    return b;
}
ссылка

опубликован 10 Янв, 12:38

name_is_null's gravatar image

name_is_null
734
одобрено: 20%

У m нет никакого значения, если ни одно условие не подходит, поэтому ошибка. Инициализация по умолчанию только для полей класса, но не метода. Добавьте int m = 0. А вот по поводу если равно, это лучше поправить, просто упростили пример.

ссылка

опубликован 10 Янв, 12:16

name_is_null's gravatar image

name_is_null
734
одобрено: 20%

А так можно? if (m<>null) return m; else return null;

ссылка

опубликован 10 Янв, 12:24

MarkTrade's gravatar image

MarkTrade
164
одобрено: 16%

m - примитив, у него нет null

(10 Янв, 14:51) Tars

Объясните пожалуйста свою строчку return a <= b ? a : b; Я чайник еще...

ссылка

опубликован 10 Янв, 12:33

MarkTrade's gravatar image

MarkTrade
164
одобрено: 16%

return a<b?a:b; Это компактная версия кода. int m; if (a<b) m = a; else m = b; return m;

а меньше б "? = если а, возвращается а" если нет, то производится выполнение операции после : то-есть возвращается б.

ссылка

опубликован 10 Янв, 14:25

exformat's gravatar image

exformat
1386
одобрено: 10%

Спасибо всем за ответы. (Палец вверх нажать рейтинга не хватает.)

ссылка

опубликован 10 Янв, 16:18

MarkTrade's gravatar image

MarkTrade
164
одобрено: 16%

Ваш ответ
включить просмотр

Следить за вопросом

По Email:

После авторизации вы сможете подписаться на любые обновления здесь

Основы Markdown

  • *italic* or _italic_
  • **bold** or __bold__
  • ссылка:[текст](http://url.com/ "заголовок")
  • изображение?![alt текст](/path/img.jpg "заголовок")
  • нумерованный список: 1. Foo 2. Bar
  • Для того чтобы добавить разрыв строки просто добавьте два пробела.
  • основные HTML тэги, также поддерживаются

Тэги:

×35

Задан: 10 Янв, 12:06

Просмотров: 308 раз

Отредактирован: 12 Янв, 04:45