导入
简单用户自定义函数
学习如何在 C++ 中将程序划分为函数或子程序。
函数
在 C++ 中,我们可以将程序划分为称为函数的过程性组件或模块。我们已经熟悉一个函数:main()。函数可以通过一种称为模块化或过程式的方法重复使用,也被称为“分而治之”方法。我们应该始终努力设计出可以在其他程序中复制和重用的函数。
函数名只能包含字母(A–Z 和 a–z)以及下划线符号(_)。也可以包含数字(0–9),但函数名不能以数字开头。例如,
Key_2是一个有效的函数名,但2_key就不是。函数名是区分大小写的,这意味着name、Name和NAME是三个不同的函数。
函数定义主要由两部分组成:
- 头部分:第一行,以闭合括号
)结尾。 - 函数体:位于函数头下方,以开括号
{开始,以闭括号}结束的一组语句块。
函数头包含关键字 void(表示该函数不返回任何值)、函数名 sayHello 以及括号中的参数。函数体内的所有语句都用 { 和 } 包裹成一个代码块。我们不能在没有大括号的情况下编写函数体。
函数调用
通过写出函数名后跟 () 并以 ; 结尾来调用函数。
下面的程序演示了函数的创建和函数调用:
1#include <iostream> 2using namespace std; 3 4void sayHello() // void 函数的函数头 5{ 6 cout << "Hello" << endl; // 输出 "Hello" 7} 8 9int main() // 主函数 10{ 11 sayHello(); // 调用函数 12 return 0; 13}
第 11 行:我们指示程序调用 sayHello() 函数。这是一次函数调用。
函数调用示例
让我们看下面的代码:
1#include <iostream> 2using namespace std; 3 4void first() 5{ 6 cout << "现在进入函数 'first'。" << endl; 7} 8 9void second() 10{ 11 cout << "现在进入函数 'second'。" << endl; 12} 13 14int main() 15{ 16 cout << "主程序从这里开始。" << endl; 17 first(); // 调用 first 函数 18 cout << "回到主程序。" << endl; 19 second(); // 调用 second 函数 20 cout << "再次回到主程序。" << endl; 21 first(); // 再次调用 first 函数 22 cout << "再次回到主程序,执行完 first 后。" << endl; 23}
在上述代码中:
- 我们定义了两个简单的函数 ——
first()和second()。 - 我们两次调用
first()函数,以说明函数可以按需重复使用。 - 我们通过
cout语句展示了程序的执行顺序。
练习:创建和调用函数
以下是几个用于练习创建和调用函数的示例程序。点击“显示答案”按钮后,你会看到解决相应问题的程序。你可以将给出的解决方案复制粘贴到代码编辑器中,以确保你的输出与示例一致。编程中可能存在多种正确的实现方式。
创建乘法表的函数
编写一个函数 showTableOf4(),用于显示 4 的 20 项乘法表。通过编写 main 函数来调用 showTableOf4() 完成程序。
示例输出
14 x 1 = 4 24 x 2 = 8 34 x 3 = 12 44 x 4 = 16 54 x 5 = 20 64 x 6 = 24 74 x 7 = 28 84 x 8 = 32 94 x 9 = 36 104 x 10 = 40 114 x 11 = 44 124 x 12 = 48 134 x 13 = 52 144 x 14 = 56 154 x 15 = 60 164 x 16 = 64 174 x 17 = 68 184 x 18 = 72 194 x 19 = 76 204 x 20 = 80
1#include <iostream> 2using namespace std; 3 4int main() 5{ 6 // 请在此处编写你的代码 7 return 0; 8}
你可以在上方的代码编辑器中运行以下代码:
1#include <iostream> 2#include <string> 3using namespace std; 4 5void showTableOf4() 6{ 7 for (int i = 1; i < 21; i++) 8 { 9 cout << "4 x " << i << " = " << 4*i << endl; 10 } 11} 12 13int main() 14{ 15 showTableOf4(); 16 return 0; 17}
在上述程序中:
- 我们实现了一个函数
showTableOf4()。 - 在函数体内,我们使用一个计数控制的
for循环来显示 4 的乘法表。 - 在
main函数中,我们调用了该函数。