Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 69, средняя оценка - 4.68
BondEros
0 / 0 / 0
Регистрация: 15.10.2009
Сообщений: 10
#1

В чем разница между return и return false/true - C++

26.10.2009, 14:15. Просмотров 9229. Ответов 16
Метки нет (Все метки)

Привет всем. Вот подскажите плиз)

C++
1
2
3
return;
return false;
return true;
расскажите пожалуйста об етих операторах.. чем они отличаются от друг друга
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ximerus
6 / 6 / 2
Регистрация: 17.07.2009
Сообщений: 5
26.10.2009, 14:47     В чем разница между return и return false/true #2
Оператор return; это оператор возвращения из функции и то что стоит после него возвращается в функцию из которой он вызывался! return false; возвращает ложь то есть 0, а return true; возвращает истину то 1!
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,911
26.10.2009, 16:12     В чем разница между return и return false/true #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
return;
применяется для досрочного выхода из void функции
return false;
return true;
возращает значение из функции булевого типа.
ximerus
6 / 6 / 2
Регистрация: 17.07.2009
Сообщений: 5
26.10.2009, 17:12     В чем разница между return и return false/true #4
ну вот более опытный товарищь, разьяснил все в деталяХ!
ruslan_net
4 / 4 / 1
Регистрация: 18.09.2012
Сообщений: 38
31.10.2012, 23:05     В чем разница между return и return false/true #5
Подскажите как тут вернуть из функции flag=false. Пробовал по разному не могу разобраться

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
int func (int k, int i, int j, bool flag, int p, int a[12][12])
{
       if (k==0)
                    {
                            if (((a[i-1][j-1])==1) || ((a[i-1][j])==1) || ((a[i-1][j+1])==1))  flag=false;
                            for(int k=1;k<=p;k++)
                            {
                                    if (((a[i][j-1])==1) || ((a[i][j])==1) || ((a[i][j+1])==1)) flag=false;
                                    i++;
                            }
                            if (((a[i+1][j-1])==1) || ((a[i+1][j])==1) || ((a[i+1][j+1])==1))  flag=false;
                            }
        else
                    {
                             if (((a[i-1][j-1])==1) || ((a[i][j-1]==1)) || ((a[i+1][j-1])==1))  flag=false;
                            for(int k=1;k<=p;k++)
                            {
                                if (((a[i-1][j])==1) || ((a[i][j])==1) || ((a[i+1][j])==1))  flag=false; 
                                    j++;
                            }
                            if (((a[i-1][j+1])==1) || ((a[i][j+1])==1) || ((a[i+1][j+1])==1))  flag=false;
                            }
       
       return flag;
}
angelgreys
9 / 9 / 0
Регистрация: 29.10.2012
Сообщений: 27
31.10.2012, 23:07     В чем разница между return и return false/true #6
замени
C++
1
int func (int k, int i, int j, bool flag, int p, int a[12][12])
на
C++
1
bool func (int k, int i, int j, bool flag, int p, int a[12][12])
ruslan_net
4 / 4 / 1
Регистрация: 18.09.2012
Сообщений: 38
01.11.2012, 02:25     В чем разница между return и return false/true #7
это да. Но еще что то flag всеравно не возвращается
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
01.11.2012, 02:45     В чем разница между return и return false/true #8
А зачем ты bool flag передаешь в функцию, если не используешь его ?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.11.2012, 03:12     В чем разница между return и return false/true #9
Цитата Сообщение от ruslan_net Посмотреть сообщение
это да. Но еще что то flag всеравно не возвращается
Из чего видно?
ruslan_net
4 / 4 / 1
Регистрация: 18.09.2012
Сообщений: 38
01.11.2012, 22:12     В чем разница между return и return false/true #10
Цитата Сообщение от alsav22 Посмотреть сообщение
Из чего видно?
Когда пошагово просматриваю тогда и видно

Добавлено через 4 минуты
Цитата Сообщение от lazybiz Посмотреть сообщение
А зачем ты bool flag передаешь в функцию, если не используешь его ?
flag передеется в функцию со значением true, и если возвращается из функции true(т.е. ни чего не меняеся) то выполняется одно, а если false то другое. Почемуто возвращается всегда true
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
01.11.2012, 22:25     В чем разница между return и return false/true #11
Если всегда возвращается true, значит никогда не выполняется условие. Логично же.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.11.2012, 23:14     В чем разница между return и return false/true #12
Цитата Сообщение от ruslan_net Посмотреть сообщение
Почемуто возвращается всегда true
Зачем тогда это писать?
Цитата Сообщение от ruslan_net Посмотреть сообщение
Но еще что то flag всеравно не возвращается
Добавлено через 1 минуту
Если true всегда возвращается, значит не срабатывает ни один if. Проверяйте условия.
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
02.11.2012, 03:17     В чем разница между return и return false/true #13
Цитата Сообщение от alsav22 Посмотреть сообщение
Если true всегда возвращается, значит не срабатывает ни один if. Проверяйте условия.
Цитата Сообщение от lazybiz Посмотреть сообщение
Если всегда возвращается true, значит никогда не выполняется условие. Логично же.
Зачем человека путать? Под словом "возвращается" он полагает не return, а наивно считает, что флаг, переданный в функцию в качестве одного из аргументов это не копия, а оригинал той переменной, которую он прописывал в качестве параметра, передаваемого функции.

Короче, он наивно думает, что так работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int func(bool flag){
  if (...) flag=false;
 return flag;
}
int main(){
  bool flag=true;
  func(flag);
  if (!flag){
    //какое-то действие в надежде, что  flag изменился
  }
  //...
}
Нет, так не работает. Параметры в функцию передаются как копии значений. Что бы ты с ними внутри не делал, это не повлияет на переменные, из которых они копировались при вызове функции.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.11.2012, 03:55     В чем разница между return и return false/true #14
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Зачем человека путать?
Это он всех запутал
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Под словом "возвращается" он полагает не return
Если бы он так полагал, то зачем ему делать в коде return flag ?

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Короче, он наивно думает, что так работает:
Как предположение годится, а как на самом деле ТС обрабатывает возвращаемое значение (и обрабатывает ли вообще) неизвестно. Может пояснит?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2012, 11:30     В чем разница между return и return false/true
Еще ссылки по теме:
В чем разница между вектором и массивом C++
В чем разница между Double и Float? C++
C++ В чем разница между Рекурсией и Итерацией?
C++ В чем разница между Debug and Release?
C++ В чем разница между const и constexpr?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
02.11.2012, 11:30     В чем разница между return и return false/true #15
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Под словом "возвращается" он полагает не return, а наивно считает, что флаг, переданный в функцию в качестве одного из аргументов это не копия, а оригинал той переменной, которую он прописывал в качестве параметра, передаваемого функции.
Ну мы ж не телепаты. Как спросил так и ответили.
Yandex
Объявления
02.11.2012, 11:30     В чем разница между return и return false/true
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru