0 / 0 / 0
Регистрация: 15.10.2009
Сообщений: 10
1

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

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

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

C++
1
2
3
return;
return false;
return true;
расскажите пожалуйста об етих операторах.. чем они отличаются от друг друга
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2009, 14:15
Ответы с готовыми решениями:

Как сделать так, что если файл существует return true, если нет - return false
Здравствуйте, я новичок в программировании. Мой вопрос очень прост: как сделать так, что если файл...

Что такое в jquery и java return false и return true
Если я правильно понимаю, то return false отменяет действие по умолчанию, например клик по ссылке,...

Что это isOk(int s),setAge(int g){if(isOk(g){age=g;return true;}else{.;return false;}}.getName(){return name;}?
package com.company; import java.io.Serializable; public class person implements Serializable {...

После true/false программа переходит к строчке return number;?
package com.company; import java.util.Scanner; public class UI { private int getInt(String...

16
7 / 7 / 1
Регистрация: 17.07.2009
Сообщений: 5
26.10.2009, 14:47 2
Оператор return; это оператор возвращения из функции и то что стоит после него возвращается в функцию из которой он вызывался! return false; возвращает ложь то есть 0, а return true; возвращает истину то 1!
3
2017 / 1616 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
26.10.2009, 16:12 3
Лучший ответ Сообщение было отмечено как решение

Решение

return;
применяется для досрочного выхода из void функции
return false;
return true;
возращает значение из функции булевого типа.
4
7 / 7 / 1
Регистрация: 17.07.2009
Сообщений: 5
26.10.2009, 17:12 4
ну вот более опытный товарищь, разьяснил все в деталяХ!
2
4 / 4 / 1
Регистрация: 18.09.2012
Сообщений: 38
31.10.2012, 23:05 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;
}
0
9 / 9 / 3
Регистрация: 29.10.2012
Сообщений: 27
31.10.2012, 23:07 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])
1
4 / 4 / 1
Регистрация: 18.09.2012
Сообщений: 38
01.11.2012, 02:25 7
это да. Но еще что то flag всеравно не возвращается
0
Эксперт С++
4978 / 3085 / 456
Регистрация: 10.11.2010
Сообщений: 11,164
Записей в блоге: 10
01.11.2012, 02:45 8
А зачем ты bool flag передаешь в функцию, если не используешь его ?
0
5489 / 4884 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
01.11.2012, 03:12 9
Цитата Сообщение от ruslan_net Посмотреть сообщение
это да. Но еще что то flag всеравно не возвращается
Из чего видно?
0
4 / 4 / 1
Регистрация: 18.09.2012
Сообщений: 38
01.11.2012, 22:12 10
Цитата Сообщение от alsav22 Посмотреть сообщение
Из чего видно?
Когда пошагово просматриваю тогда и видно

Добавлено через 4 минуты
Цитата Сообщение от lazybiz Посмотреть сообщение
А зачем ты bool flag передаешь в функцию, если не используешь его ?
flag передеется в функцию со значением true, и если возвращается из функции true(т.е. ни чего не меняеся) то выполняется одно, а если false то другое. Почемуто возвращается всегда true
0
Эксперт С++
4978 / 3085 / 456
Регистрация: 10.11.2010
Сообщений: 11,164
Записей в блоге: 10
01.11.2012, 22:25 11
Если всегда возвращается true, значит никогда не выполняется условие. Логично же.
0
5489 / 4884 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
01.11.2012, 23:14 12
Цитата Сообщение от ruslan_net Посмотреть сообщение
Почемуто возвращается всегда true
Зачем тогда это писать?
Цитата Сообщение от ruslan_net Посмотреть сообщение
Но еще что то flag всеравно не возвращается
Добавлено через 1 минуту
Если true всегда возвращается, значит не срабатывает ни один if. Проверяйте условия.
0
3835 / 3136 / 872
Регистрация: 25.03.2012
Сообщений: 11,577
Записей в блоге: 1
02.11.2012, 03:17 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 изменился
  }
  //...
}
Нет, так не работает. Параметры в функцию передаются как копии значений. Что бы ты с ними внутри не делал, это не повлияет на переменные, из которых они копировались при вызове функции.
1
5489 / 4884 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
02.11.2012, 03:55 14
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Зачем человека путать?
Это он всех запутал
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Под словом "возвращается" он полагает не return
Если бы он так полагал, то зачем ему делать в коде return flag ?

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Короче, он наивно думает, что так работает:
Как предположение годится, а как на самом деле ТС обрабатывает возвращаемое значение (и обрабатывает ли вообще) неизвестно. Может пояснит?
0
Эксперт С++
4978 / 3085 / 456
Регистрация: 10.11.2010
Сообщений: 11,164
Записей в блоге: 10
02.11.2012, 11:30 15
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Под словом "возвращается" он полагает не return, а наивно считает, что флаг, переданный в функцию в качестве одного из аргументов это не копия, а оригинал той переменной, которую он прописывал в качестве параметра, передаваемого функции.
Ну мы ж не телепаты. Как спросил так и ответили.
0
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
02.11.2012, 13:11 16
инициализируйте флаг внутри функции,раз у вас все время он одинаковый на входе, вот так
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
bool func (int k, int i, int j, int p, int a[12][12])
{
       bool flag=true;
* * * *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;
}
хотя по большому счету, если например вызывать не так
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
bool func(bool flag){
* if (...) flag=false;
*return flag;
}
int main(){
* bool flag=true;
* func(flag);
* if (!flag){
* * //какое-то действие в надежде, что *flag изменился
* }
* //...
}
а так
C++
1
2
3
4
5
6
int main(){
* bool flag=true;
* if (!func(flag)){
* /*...*/ 
  }
}
то работать будет и ваша версия(только тип у функции поменять на bool) ибо вернется копия, но копия уже отличная от true (если конечно условия выполняются)
0
Обитатель форума
201 / 184 / 54
Регистрация: 28.10.2012
Сообщений: 543
02.11.2012, 13:35 17
return используется для возвращения значения ф-ции.
Пару примеров:

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
bool MoreZero(int idx)
{
    if (idx > 0)
        return true
    else
        return false;
}
 
inline int Sum(int X, int Y)
{
    int Z;
    
    Z = (X + Y) / 2;
    
    return Z;
}
 
void outMessage (string text)
{
    if (!text)
        return;
    
    cout << text << endl;
}
 
int main (void)
{
    int n, i;
    string str;
    
    cin >> n;
    
    if (MoreZero(n))
        cout << "Число больше нуля" << endl;
    else 
        cout << "Число меньше нуля" << endl;
        
    i = Sum(n, (n+2));
    str << "число после выполнения арифм. операций равно" << i;
    outMessage (str);
    
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2012, 13:35
Помогаю со студенческими работами здесь

Return и exit, в чем разница?
Чем отличаются return и exit?

Разница между return и yield
Здравствуйте. В интернете нашёл не так много ответов, поэтому обращаюсь сюда. В чём разница и...

<a onclick="return confirm('вы уверены?') ? true : false;"> не работает conmirmation window
&lt;a onclick=&quot;return confirm('вы уверены?') ? true : false;&quot;&gt; не работает conmirmation window, ...

return false
Непонятно, почему return false предотвращает всплытие и действие браузера по умолчанию. По поводу...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru