Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2018, 13:40   #11
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

а еще в перегрузке...
p51x вне форума Ответить с цитированием
Старый 20.06.2018, 13:42   #12
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Цитата:
Сообщение от Мaкс Посмотреть сообщение
Я про вот это:
Ооо... бегом первые главы книг читать. Где в записи
Код:
if (ok(index))
вы увидели оператор И? Тут написано "если функция, вызванная с аргументом index, вернула true, то"

Последний раз редактировалось p51x; 20.06.2018 в 13:54.
p51x вне форума Ответить с цитированием
Старый 20.06.2018, 14:06   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

как уже неоднократно Вам намекали и даже прямо говорили, нужно вместо
Цитата:
Сообщение от Мaкс Посмотреть сообщение
if (index >= 0 & index < Length) return true;
написать
Код:
if (index >= 0 && index < Length) return true;
а во-вторых,
меня терзают смутные сомнения.

Вы, надеюсь, понимаете, что если index равен 0 (и размер массива не нулевой), то
запись a[0] абсолютно легитимна?
Что элементы массива индексируются как раз от нуля.
Поэтому индекс и проверяется на то, что он больше ИЛИ РАВЕН нулю.
И тогда это допустимый индекс.

Или вопрос в другом и я не понял, о чём же Вы спрашиваете?!


p.s. а ещё проверять истинность выражения и возвращать true, а иначе - возвращать false - это ересь и тавтология.
проще так:
Код:
    private bool ok(int index)
    {
        return (index >= 0 && index < Length);
     }

Последний раз редактировалось Serge_Bliznykov; 20.06.2018 в 14:09.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.06.2018, 14:09   #14
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Там не в том проблема... ТС, увидел в
Код:
if (ok(index))
запись
Код:
if (ok(index) && (index != 0))
p51x вне форума Ответить с цитированием
Старый 21.06.2018, 10:01   #15
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Ооо... бегом первые главы книг читать. Где в записи
Код:

Код:
if (ok(index))
вы увидели оператор И?
Нигде, похоже мы друг друга ни черта не понимает...

А кто такой ТС??
Мaкс вне форума Ответить с цитированием
Старый 21.06.2018, 10:02   #16
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

А про укороченный оператор я понял, где я не понял, что то какую то мелочь я не заметил.
Мaкс вне форума Ответить с цитированием
Старый 21.06.2018, 10:04   #17
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Написать как я рассуждал?
Мaкс вне форума Ответить с цитированием
Старый 21.06.2018, 10:09   #18
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Мaкс Посмотреть сообщение
А кто такой ТС??
В данном случае это Вы и есть. Это автор/создатель темы.
ТС == Темы Создатель (или, Topic Creator)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.06.2018, 10:12   #19
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
0 >= 0 & 0 < 5 -> true -> return true

P.S. И лучше пораньше узнайте разницу между & и &&
Хотите сказать что в этом выражение будет результат false?
Мaкс вне форума Ответить с цитированием
Старый 21.06.2018, 10:18   #20
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Там не в том проблема... ТС, увидел в
Код:

if (ok(index))

запись
Код:

if (ok(index) && (index != 0))
Неет! В выражение
Код:
if (ok(index)
вызывается ok и срабатывает

Код:
 private bool ok(int index)
    {
        if (index >= 0 & index < Length) return true;
        return false;
    }
То есть результат true, а true и 0 в
Код:
if (ok(index)
это неправда.
Мaкс вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где я ошибся в правильном ли я направление) Sopm Помощь студентам 5 31.12.2017 13:21
Подскажите где я ошибся destra1j Помощь студентам 1 25.05.2016 07:31
(PascalABC.NET)подскажите где я ошибся destra1j Помощь студентам 6 06.05.2016 15:58
Транслировал код с C++, где ошибся? Crystallon Общие вопросы Delphi 4 10.05.2012 02:31
Объясните пожалуйста, где и как ошибся Manchester Паскаль, Turbo Pascal, PascalABC.NET 10 09.02.2009 20:51