[关闭]
@mwumli 2015-05-18T02:25:58.000000Z 字数 1285 阅读 1425

SPLOS语言 -- 函数调用语句和控制语句

SPLOS OSEP


函数调用语句

函数是语言中不可或缺的一部分

如果一个语言没有函数,则就丧失了代码重复利用的特性,这对编写代码而言是件灾难性事件

当然,这不是说除了函数而言没有其他实现代码重复利用的特性的方式,只是为了表现函数在语言中巨大作用

SPLOS 语言中函数调用的标准格式:

  1. func-name([para-list])

若是函数定义时没有参数,则圆括号内的就没有参数

函数调用的结果通常通过返回值来体现

控制语句

有的时候我们的程序需要在多个条件判断,当某个条件为真的时候,采取执行相应的动作,这就是条件控制语句

有时候,我们需要重复执行某些语句很多次,假如有1000次,我们不可能就把相同的code写1000次,这样虽然能达到效果,但是程序的代码量大大增加,也不利于编程人员的编程
我们需要引入一种方式来通知系统来,这句话需要重复执行1000次,而我们只需要书写一遍即可,这就是循环控制语句

条件控制语句

SPLOS 提供的条件控制语句只有if语句

if语句的使用参考:

  1. int num = 10;
  2. ...; //多行代码,也可能对num值进行改变
  3. if(num > 10) {
  4. code1; //假如 num > 10,那么执行 code1
  5. } else {
  6. code 2; //假如 num <= 10, 那么执行 code2
  7. }
  8. if(num > 10) {
  9. code1; // 假如 num > 10, 执行 code1
  10. } else if(num == 10) {
  11. code2; // 假如 num == 10, 执行 code2
  12. } else {
  13. code3; //假如 num < 10, 执行 code3
  14. }

循环控制语句

SPLOS 循环控制语句只有while语句

while 语句的使用参考:

  1. //计算1+2+3+...+ 1000
  2. int sum = 0;
  3. int i = 1;
  4. //在下面这个模块,花括号里面的语句就执行了1000次,而我们的代码仅仅写了4行
  5. while(i <= 1000) {
  6. sum = sum + i;
  7. i = i + 1;
  8. }

示例程序1

  1. int getSquareArea(int x, int y)
  2. {
  3. int area;
  4. area = x * y;
  5. return area;
  6. }
  7. int main()
  8. {
  9. int x,y;
  10. int area;
  11. x = 30;
  12. y = 40;
  13. area = getSquareArea(x, y);
  14. return 0;
  15. }

说明:
* 定义了一个函数, 函数名为getSquareArea, 用来计算一个长方体的面积
* 有两个形式参数下x, y, 分别代表长和宽
* 有一个返回值,返回的计算的结果
* 在main函数中,我们调用了此函数getSquareArea

示例程序2

  1. /*
  2. 计算1--100的阶乘和累加和
  3. */
  4. int main()
  5. {
  6. int method; //决定是累加还是阶乘
  7. int result; //最终结果
  8. int i; //控制循环迭代
  9. method = 1;
  10. if(method) {
  11. result = 1;
  12. i = 1;
  13. while(i <= 100) {
  14. result = result * i;
  15. i = i + 1;
  16. }
  17. } else {
  18. result = 0;
  19. i = 1;
  20. while(i <= 100) {
  21. result = result + i;
  22. i = i + 1;
  23. }
  24. }
  25. return 0;
  26. }

无论是累加还是阶乘,最终结果被存储在 result

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注