千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:济南千锋IT培训  >  技术干货  >  编程语言中的循环体为什么不设计成函数调用?

编程语言中的循环体为什么不设计成函数调用?

来源:千锋教育
发布人:xqq
时间: 2023-10-20 05:41:09

一、编程语言中的循环体不设计成函数调用的原因

for就是更加倾向于函数式范式的语义。对于大多数高级语言,已经有类似于foreach,map,for in,for of等等函数式的隐含迭代器的语法。只有在c/c++这种类似的过程式的编程范式中,for更显式的代表for-loop,实际上,对于c语言系统中,这种for-loop语法并不自然,远远没有while-loop来的自然,并且也不是必须,可以说没有for循环的c语言丝毫不影响其表达能力。所以真相是,for-loop在c语言的地位是为了实现类似函数式for-iterator语法中的一种近似;我们考察在c语言中的一个典型的for-loop结构:int i;

for(i = 0; i < n; i++)

{

do_something(i);

/*some implement here*/

}由于for-iterator的语义在结构化的编程语言首先选用循环来实现(递归也可以等价),而loop必须依赖于起始状态,结束条件,为了使迭代的处理可以放在同一个代码块里(便于封装),因此状态改变也实现在每次循环之后。我们稍微封装一下:void for_each(int array[],int count,void (*handle)(int array[],int i))

{

    int i = 0;

    for(i = 0; i < n; i++)

    {

        handle(array,i);

    }

}

int a[]={1,2,3,4,5,6,7};

void print(int array[],int index)

{

    printf(“%d\n”,array[index]);

}

for_each(a,sizeof(a)/sizeof(a[0]),print);可以看出for-loop在c语言的实现,依赖外部状态变化,也就是副作用;副作用必须封装起来才能尽可能避免对系统的其他方面造成影响,于是for-loop用了一个语句分别表达了,初始化,结束条件,和迭代这三个东西—-这使得for-loop在c语言的实现非常不自然。事实上,for在c语言中往往也因为其奇怪的语法定义,用于实现非迭代式的很多循环功能

延伸阅读:

二、编程语言选用原则

综合思考软件运行过程中所处的硬件环境

如果在硬件环境中。更新效率相对偏高,一旦硬件环境出现一定转变,将会使计算机编程预算无法快速地和硬件环境相迎合。使得程序编程带来一定影响。所以,程序人员在程序编程的过程中,需要对软件调整内容加以综合思考。并且注重适当地减少软件调整难度。

全面思考平台支撑性

在开展程序编程工作的过程中,应该思考应用平台给编程语言带来的影响,结合编程语言自身特性对应用平台实施科学调整,从而实现工作水平的提升,将编程语言自身作用充分发挥。

思考程序编程实际问题

在进行程序编程的过程中,综合思考上述两个问题时。还要对编程实际情况进行全面思考。所以,在进行计算机编程语言选择的过程中,要求编程人员对编程语言特性有所了解。编程人员在对特殊性软件开发过程中。应该选用较为专业的计算机编程语言.专业性编程语言能够有效提升软件开发的规范性。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

程序员都上什么网站?

2023-10-20

#!/usr/bin/env python有什么用?

2023-10-20

HTML、CSS、JavaScript分别实现什么功能?

2023-10-20

最新文章NEW

mysql 不加条件查询速度挺快,加上过滤条件就特别慢是为什么?

2023-10-20

什么是Web前端,有什么好的学习方法?

2023-10-20

哪种工具可以替代PB做数据库开发?

2023-10-20

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>