精华内容
下载资源
问答
  • C++中的return语句是函数中一个重要的语句,return语句用于结束当前正在执行的函数,并将控制权返回给调用此函数的函数。return语句有两种形式: return; return expression; 1、没有返回值的函数 不带返回值的...
  • python函数的return语句

    千次阅读 2018-05-14 22:51:41
    注:[]中内容可省略作用:用于函数中,结束当前函数的执行返回到调用函数的地方,同时返回一个对象引用关系说明:1 return语句后跟表达式可以省略,省略后相当于return None2 如果函数没有return语句,...

    return语句:

      语法:

    return[表达式]

      注:[]中的内容可省略

    作用:

      用于函数中,结束当前函数的执行,返回到调用函数的地方,同时返回一个对象的引用关系

    说明:

      1 return语句后跟的表达式可以省略,省略后相当于return None

      2 如果函数内没有return语句,则函数执行完最后一条语句后返回None(相当于最后加了一条return None语句)

      3 函数调用能够返回一个对象的引用

    示例:

    def mymax(a,b):

    If a>b:

    return a

    return b

    a=1

    b=2

    print(mymax(a,b))

    练习:

    写一个函数input_number()

    此函数用于读取用户输入的多个整数(用户输入复数时结束输入)

    将用户输入的数形成列表返回给调用者

    def input_number():

    L=input_number

    print(‘你输入的最大数是:’,max(l))

    print(‘你输入的这些数之和是是:’,sum(l))

    答案:

    def input_number():

        l=[]

        while True:

            num=int(input('请输入整数:'))

            if num<0:

                return l

            l.append(num)

    lst=input_number()

    print('你输入的最大数是:',max(lst))

    print('你输入的这些数之和是是:',sum(lst))

    展开全文
  • <code class="language-cpp">i32 ...但是findIntSec()函数里面没有return语句,却得到了正确返回值,这是为什么呢? <code>Idx1_up = findIntSec(in_x1, tb_X1, N1)</code></pre>  </p>
  • C++函数返回类型和return语句

    千次阅读 2017-10-28 19:02:48
    定义return语句终止当前正在执行的函数并将控制权返回给调用该函数的地方。return语句有两种形式:return; return expression;无返回值的函数没有返回值的return语句只能用在返回类型是void 的函数中,返回void 的...

    定义

    return语句终止当前正在执行的函数并将控制权返回给调用该函数的地方。return语句有两种形式:

    returnreturn expression;

    无返回值的函数

    没有返回值的return语句只能用在返回类型是void 的函数中,返回void 的函数不要求必须有return 语句,编译器会自动的在最后一句后面隐式执行return。

    有返回值的函数

    基本知识

    如果函数有返回值,那么return 语句返回值的类型必须和函数的返回类型相同,或者可以隐式转换成函数的返回类型。
    函数调用,其实就是开辟函数栈帧,函数栈帧回退的过程(后期写博文)。因此,当返回子函数中局部变量和指针或者引用时,该函数的局部变量已经成为非法访问的内存,故而会出错。所以,规定不能返回局部对象的引用和指针

    函数返回结果为值
    函数返回结果为基本类型
    int GetInt()
    {
        int value=10;
        return value;
    }
    int ret1 = GetInt(); //值可以成功返回
    int &ret2 = GetInt(); //错误 ret想定义为返回值的引用,但是此时返回值是字面值,需要定义成const 引用
    int *ret3 = &GetInt();//()优先级高。所以是取返回值的地址。但是返回值是以寄存器的方法带出,无法获取其地址。
    函数返回结果为自定义类型
    typedef struct
    {
        int price;
    }Food;
    
    Food GetFood()
    {
        Food food = { 10 };
        return food;
    }
    Food ret2 = GetFood(); //值可以成功返回
    Food &ret3 = GetFood();//自定义类型,函数返回值,需要对其进行引用。编译器自动生成一个临时量。
    Food *ret3 = &GetFood();//由于编译器自动生成了一个临时量,所以可以对该临时量取地址?
    函数返回结果为指针
    函数返回结果为基本类型的地址
    int* GetIntPtr()
    {
        int value = 10;
        return &value;
    }
    int *p1 = GetIntPtr();  //正确,返回地址,类型一致
    int *&p2 = GetIntPtr(); //错误,虽然返回地址,地址也是值,还是字面值,那么对字面值定义引用时必须使用常引用。改为int * const &p2=GetIntPtr();
    函数返回结果为自定义类型的地址
    typedef struct
    {
        int price;
    }Food;
    
    Food* GetFoodPtr()
    {
        Food food = { 10 };
        return &food;
    }
    Food *d4 = GetFoodPtr();  //正确,返回地址,类型一致
    Food * &d5 = GetFoodPtr(); //错误,虽然返回地址,地址也是值,还是字面值,那么对字面值定义引用时必须使用常引用。Food * const &d5 = GetFoodPtr();
    
    函数返回结果为引用
    函数返回结果为基本类型的引用
    int& GetIntRef()
    {
        int value = 10;
        return value;
    }
    int ret4 = GetIntRef();  //正确
    int &ret5 = GetIntRef();  //正确
    int *pret6 = &GetIntRef();  //正确
    函数返回结果为自定义类型的引用
    typedef struct
    {
        int price;
    }Food;
    Food d6 = GetFoodRef();//正确
    Food &d7 = GetFoodRef();//正确
    Food *d8 = &GetFoodRef();//正确
    

    结论:自定义类型和内置类型返回指针和引用没有任何区别,但是返回值区别很大。

    展开全文
  • 前言 return语句用于退出函数,向调用方返回一个表达式。return在不带参数情况下...1》当函数没有显式return,默认返回None值 >>> def fun(): print 'ok' >>> res=fun() ok >>> type(res) <type 'NoneType'
  • return语句终止当前正在执行的函数,并将控制权返回到调用该函数的地方。 return语句有两种形式: return; return expression; 无返回值函数 没有返回值的return语句只能用在返回类型是void的函数中,返回void的...
    • return语句终止当前正在执行的函数,并将控制权返回到调用该函数的地方。
     return语句有两种形式:
             return;
             return expression;
    

    无返回值函数

    • 没有返回值的return语句只能用在返回类型是void的函数中,返回void的函数不要求非得有return语句,因为在这类函数函数最后一句后面会隐式的执行return。
    • 通常情况下,void函数如果想在它的中间位置提前退出,可以使用return语句,return的这种用法有点像我们的break语句退出循环。

      有返回值函数

    • return语句的第二种形式提供了函数的结果。只要函数的返回类型不是void,则该函数内的每条return语句必须返回一个值。return语句返回值的类型必须与函数的返回值类型相同,或者能隐式的转换成函数的返回类型。
    例:
    bool str_subrange(const string &str1, const string &str2)
    {
       auto size = (str1.size() < str2.size()) ? str1.size() : str2.size();
       for(decltype(size) i=0; i!=size; ++i)
           if(str1[i] != str2[i])
                   return 0;
       return 1;  //在含有return语句的循环后面应该也有一条return语句
    }

    值是如何被返回的

    • 返回一个值的方式和初始化一个变量或形参的方式完全一样;返回的值用于初始化调用点的一个临时量,该临时量就是函数调用的结果。

    不要返回局部对象的引用或指针

    • 函数完成后,它所占用的存储空间也随之被释放掉。因此,函数终止意味着局部变量的引用将指向不在有效的内存区域。
    • 返回局部对象的引用时错误的;同样返回局部对象的指针也是错误的,一旦函数完成,局部对象被释放,指针将指向一个不存在的对象。
    //  严重错误,这个函数试图返回局部对象的引用。
    const string &manip()
    {
        string ret;
        if(!ret.empty())
             return ret;  // 错误;返回的局部对象的引用
         else
             return "Empty";  // 错误;”Empty“是一个局部的临时量
    }

    返回数组指针
    - 因为数组不能拷贝,所以函数不能返回数组。 不过函数可以返回数组的指针或引用。

    声明一个返回函数指针的函数
    我们想定义一个返回数组指针的函数,则数组的维度必须跟在函数的名字之后,然而,函数的形参列表也跟在函数名字后面且形参列表应该先于数组的维度。

    返回数组指针的函数形式如下所示:
        Type (*functon(parameter_list)) [dimension]
        // 类似于其他数组的声明,Type表示元素的类型,dimension表示数组的大小。
    // c++11新标准定义方式: auto func(int i) -> int(*)[10];
    展开全文
  • return 语句终止当前正在执行的函数并将控制权返回到调用该函数的地方。 6.3.1 无返回值函数 没有返回值的 return 语句只能用在返回类型是 void 的函数中。 通常情况下,void 函数如果想在它的中间位置提前退出,...

    6.3 返回类型和 return 语句

    return 语句终止当前正在执行的函数并将控制权返回到调用该函数的地方。

    6.3.1 无返回值函数

    没有返回值的 return 语句只能用在返回类型是 void 的函数中。

    通常情况下,void 函数如果想在它的中间位置提前退出,可以使用 return 语句,类似 break。

    6.3.2 有返回值函数

    只要函数的类型不是 void,则该函数内的每条 return 语句必须返回一个值。return 语句返回值的类型必须与函数的返回类型相同,或者能隐式转换成函数的返回类型。

    含有 return 语句的循环后面应该也有一条 return 语句。

    值是如何被返回的

    返回一个值的方式和初始化一个变量或形参的方式完全一样:返回的值用于初始化调用点的一个临时量,该临时量就是函数调用的结果。

    如果函数返回引用,则该引用仅是它所引对象的一个别名。

    不要返回局部对象的引用或指针

    函数完成后,它所占用的存储空间也随之释放掉。因此,函数终止意味着局部变量的引用将指向不再有效的内存区域。

    // 严重错误:这个函数试图返回局部对象的引用
    const string &mainp()
    {
        string ret;
        if (!ret.empty())
            return ret;		// 错误:返回局部变量的引用
        else
            retrun "Empty";	// 错误:返回局部临时变量
    }
    

    返回类类型的函数和调用运算符

    调用运算符也有优先级和结合律,调用运算符的优先级和结合律与点运算符和箭头运算符相同,并且也符合左结合律。

    引用返回左值

    函数的返回类型决定函数调用是否是左值。

    调用一个返回引用的函数得到左值,其他返回类型得到右值。

    能够为返回类型是非常量引用的函数的结果赋值。

    列表初始化返回值

    函数可以返回花括号包围的值的列表。类似于其他返回结果,此处的列表也用来对表示函数返回的临时量进行初始化:

    如果列表为空,临时量执行初始化;否则,返回的值由函数的返回类型决定。

    如果函数返回的是内置类型,则花括号包围的列表最多包含一个值,而且该值所占空间不应该大于目标类型的空间;如果函数返回的是类类型,由类本身定义初始值如何使用。

    主函数 main 的返回值

    允许 main 函数没有 return 语句。如果控制到达了 main 函数的结尾处而且没有 return 语句,编译器将隐式的插入一条返回 0 的return 语句。

    使用头文件cstdlib头文件中的两个预处理变量,表示 main 函数执行成功或失败

    int main()
    {
    	if (false)
            return EXIT_FAILURE;
        else
            return EXIT_SUCCESS;
    }
    

    递归

    如果一个函数调用了自身,不管这种调用是直接的还是间接的,都称该函数为递归函数(recursive function)

    // 计算 val 的阶乘,即 1 * 2 * 3...* val
    int factorial(int val)
    {
        if (val > 1)
            return factorial(val - 1) * val;
        return 1;
    }
    

    在递归函数中,一定有某条路径是不包含递归调用的。

    6.3.3 返回数组指针

    数组不能被拷贝,所以函数不能返回数组。函数可以返回数组的指针或者引用。

    可以使用类型别名简化声明:

    typedef int arrT[10];  // arrT 是一个类型别名,表示的类型是含有 10 个整数的数组
    using arrT = int[10];  // arrT 的等价声明
    arrT* func(int i);	   // func 返回一个指向含有 10 个整数的数组的指针
    

    声明一个返回数组指针的函数

    不使用类型别名的话,必须牢记被定义的名字后面的数组维度

    int arr[10];	// arr 是一个含有 10 个整数的数组
    int *p1[10];	// p1 是一个含有 10 个指向整数指针的数组
    int (*p2)[10];	// p2 是一个指向含有 10 个整数元素的数组的指针
    

    如果我们想定义一个返回数组指针的函数,则数组的维度必须跟在函数名字之后,函数的形参列表也跟在函数名字之后且形参列表应该先于数组的维度

    Type (*function (parameter_list)) [dimension]
    

    其中,Type表示元素的类型,dimension表示数组的大小,(*function (parameter_list))两端的括号必须存在。

    具体的例子如下

    int (*func(int i)) [10];
    

    使用尾置返回类型(trailing return type)

    任何函数的定义都可以使用尾置返回,尾置返回类型跟在形参列表后面并以一个->符号开头。

    为了表示函数真正的返回类型跟在形参列表之后,我们在本应该出现返回类型的地方放置一个auto

    // func 接受一个 int 类型的实参,返回一个指针,该指针指向含有 10 个整数的数组
    auto func(int i)->int(*)[10];
    

    使用 decltype

    如果我们知道函数返回的指针将指向哪个数组,可以使用decltype关键字声明返回类型。

    int odd[] = {1,3,5,7,9};
    int even[] = {0,2,4,6,8};
    // 返回一个指针,该指针指向含有 5 个整数的数组
    decltype(odd) *arrPtr(int i)
    {
    	return (i % 2) ? &odd : &enen;  // 返回一个指向数组的指针
    }
    

    decltype并不负责把数组类型转换成指针类型,所以decltype的结果是一个数组,要想表示arrPtr返回指针必须在函数声明前加一个*符号

    展开全文
  •  然后在用sum()进行集合相加时候,如果sum()对象没有记录,那么不会返回0,而返回null,这么做,不会影响数据库,因为数值型字段也是可以存放NULL,因为在执行这样SQL语句的时候,没有记录也不会报错。...
  • 没有返回值的函数没有返回值的return语句只能用在返回类型是 void 的函数中,且这类函数会在最后一句后面隐式的执行return(不要求非得写return)返回值是void的函数也可以返回一个表达式,此时这个表达式必须是另...
  • 生成器是一种特殊的函数,它会返回一个迭代器。定义一个生成器函数同定义一个普通函数没有什么区别,特殊之处在于生成器函数内部会包含yield表达式,专门用于生成一个序列。当一个生成器函数被调用时,它会返回一个...
  • # 注意没有返回值,或者返回None,否则报错:TypeError class Friend(object): """自定义类用来对现实世界中朋友进行建模""" # 设置文档字符串docstring print('开始加载类对象Friend'.center(100,'-')) # 类内...
  • Python中return语句 遇到第一个就返回,所以循环语句中如果出现了return,那么执行return后不再执行循环语句 Python中re.search用法,如果没有匹配到,则返回一个none object,而不是match object 不要奇怪 ...
  • Python-return语句-函数的形参定义

    千次阅读 2018-10-22 18:38:52
    return语句 语法: return [表达式] [ ]可以省略 作用: ...2.如果函数没有return语句,则函数执行完最后一条语句返回None(相当于在最后加了一条return None语句) 3.函数调用一定会返回一个对象...
  • return语句终止当前正在执行的函数,并将控制权返回到调用该函数的地方 return;//没有返回值的一般用在返回值类型void的函数中,可以不写,这种函数会隐式的执行return return 表达式;//返回函数的结果,除开void...
  • 构造函数的执行过程

    2019-05-06 16:46:32
    构造函数的执行过程 var p1=new Person(); 1、创建一个对象 (我们把这个对象称之为Person构造函数实例)- _p1 ...a、如果函数没有返回值(没有return语句),那么就会返回构造函数实例(p1) b、如果函数返回...
  • 定义一个带返回值的函数,需要使用return语句在调用这个函数时返回一个目标值,当没有return时,函数默认返回None。 分析下面两个程序: def now(): print('2017-9-25') now() out: 2017-9-25 def now(): ...
  • return 语句用于结束当前正在执行的函数,并将控制权返回给调用此函数的函数。return 语句有两种形式: return; return expression; 7.3.1. 没有返回值的函数 不带返回值的 return 语句只能用于返回类型为 ...
  • 返回类型和return语句

    千次阅读 2015-09-14 15:08:14
    return语句中之当前正在执行的函数,并将控制权返回到调用该函数的地方 无返回值函数 没有返回值的return语句只能用在返回类型是void的函数中,返回void的函数不要求非得有return语句,因为这类函数最后一句后面会...
  •   return语句终止当前执行的函数并将控制权返回到调用该函数的地方,return语句有两种形式: return; return expression; 1.1 无返回值函数   没有返回值的return语句只能用在返回类型是void的函数中,...
  • 当在PL_SQL中执行SELECT … INTO …语句时,如果返回结果集为空,则回触发NO_DATA_FOUND错误。但是当 SELECT 中有字段用到函数时,即使结果集为空,也不会触发NO_DATA_FOUND错误。 这里就涉及到有一条记录但是记录...
  • 3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是
  • 然后在用sum()进行集合相加时候,如果sum()对象没有记录,那么不会返回0,而返回null,这么做,不会影响数据库,因为数值型字段也是可以存放NULL,因为在执行这样SQL语句的时候,没有记录也不会报错。...
  • 有时候可能想要知道如果没有LIMIT会返回多少行,但又不想再执行一次相同语句。那么,在SELECT查询中包含SQL_CALC_FOUND_ROWS选项,然后执行FOUND_ROWS()就可以了: mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl...
  • Linux下C语言执行MySQL语句

    万次阅读 2017-01-03 00:18:27
    增、删、改执行SQL语句的增、删、改、查主要API函数为:int mysql_query(MYSQL *connection, const char *query); 函数接收参数连接句柄和字符串形式有效SQL语句没有结束分号,这与MySQL工具不同)。如果...
  • 2-3. 处理执行SQL语句后获取数据集

    千次阅读 2019-02-10 13:29:34
    2.对于返回数据的SQL语句执行成功的时间会返回结果集对象,可以使用操作结果集对象的函数获取数据 (比如select语句就能返回结果) $result=mysqli_query($link, $query); <?php header('Co...
  • 调用ExecuteNoneQuery执行insert into语句函数返回1,但是实际没有插入数据库。 把这条语句直接在sql客户端输入,可以正常插入。 求大神指点迷津,谢谢!
  • 目录 静态构造函数 对象初始化语句 静态构造函数 我们在使用类中静态成员时,先要初始化这些成员。 在声明静态成员时、可以同时提供一个初始值...那么一个类只能有一个静态构造函数,而且不能带参数、没有返回...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,426
精华内容 570
关键字:

执行的函数没有返回语句