函数基础学习

 

第五章 函数 

每当编写几乎相同的代码时,可以编写自己的函数,然后多次调用

5.1函数看作黑盒

5.2 实现函数

例1:

#include <iostream>

using namespace std;

/**
   Computes the volume of a cube //用途
   @param side_length 立方体边长 //变量
   @return the volume //返回值
*/
double cube_volume(double side_length)  //返回值类型 函数名 (参数变量类型 参数变量也叫形参)
{
	double volume = side_length * side_length * side_length;
	return volume;
}
int main()
{
	double result1 = cube_volume(2);
	double result2 = cube_volume(10);
	cout << result1 << endl;
	cout << result2 << endl;
	return 0;
}

 

5.3参数传递

1、尽量不要改参数变量,如5.2中例子程序中函数体引入了volume变量

5.4 返回值

1、return语句指定函数结果,执行时函数将立即退出,便于在开始时处理函数异常情况,如例2:

double cube_volume(double side_length)  //返回值类型 函数名 (参数变量类型 参数变量名)
{
	if (side_length < 0)
	{
		return 0;
	}
	double volume = side_length * side_length * side_length;
	return volume;
}

2、return语句也可以返回表达式的值,如例3:

double cube_volume(double side_length)  //返回值类型 函数名 (参数变量类型 参数变量名)
{
	if (side_length < 0)
	{
		return 0;
	}
	return side_length * side_length * side_length;
}

3、函数每个分支都要返回一个值,(编译器可能报错,也可能返回一个安全的值),如例4:

#include <iostream>

using namespace std;

/**
   Computes the volume of a cube //用途
   @param side_length 立方体边长 //变量
   @return the volume //返回值
*/
double cube_volume(double side_length)  //返回值类型 函数名 (参数变量类型 参数变量名)
{
	if (side_length < 0)
	{
		return 0;
	}
	if (side_length > 0)
	{
		return side_length * side_length * side_length;
	}
	//没有side_length=0时的返回值
}
int main()
{
	int num1 = 0;
	cout << "input a side_length: ";
	cin >> num1;
	cout << cube_volume(num1) << endl;
	return 0;
}

键入0后,结果没看懂,以后再说吧!

4、函数可以提前声明,就可以先写main函数,再定义函数,如例5:

double cube_volume(double side_length);

5.5 无返回值的函数

适用于需要执行一系列指令,但不产生返回值,使用void类型,如例6:

#include<iostream>
#include<string>

using namespace std;

/**
   打印框线包围的字符串
   @param str 字符串
*/
void box_str(string str)
{
	int n = str.length();
	if (n == 0)//更严谨些
	{
		cout << "please input a zifuchuan:"<<endl;
		return;			
	}
	for (int i = 1;i < n + 2;i++)
	{
		cout << "-";
	}
	cout << endl << "!" << str << "!" << endl;
	for (int i = 1;i < n + 2;i++)
	{
		cout << "-";
	}
}

int main()
{
	box_str("");
	box_str("sdfghjklkjhgfdsdfgh");
	return 0;
}

5.6 可重用函数

5.7 逐步细化

在集成开发环境(还太清楚是啥)中,如果一个函数太长,以至不能容纳其代码,则应将其分解为多个函数,函数里套另一个函数

5.8 变量作用域和全局变量

少用全局变量

5.9 引用参数

1、在函数需要更新变量时需要使用引用参数

2、调用函数时,将实参的值传递对应的形参,即为值传递。由于形参有自己独立的存储空间,又作为函数的局部变量使用,因此在函数中对任何形参值得修改都不会改变实参变量的值。如例7:

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值