百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

六种程序设计语言的循环及循环嵌套之比较(周兴富)

moboyou 2025-06-12 13:10 18 浏览

我在《72岁老翁学python》(六)一文里展示了仿写的第一个python程序zxf-python-cx01.py,以及试写的一个程序zxf-python-cx02.py,虽然错误多多,但是万里长征第一步。

这两个小程序都是有关循环及循环嵌套的程序。

由此,我想起了初学程序设计的那些日子,那是一个青春无悔,岁月如歌的火红年代。

1979年的4月,大别山兰花飘香,映山红开满了山坡。45年前,就在这个季节,我开始学习J101机器语言程序设计。教员是黄亦文同志(图一前左2),同班学员有王小卫、杜民根、周俊等,我是班长(图一,后排左1)。

1984年下半年我又到大别山学习Z80汇编语言程序设计和计算机硬软件及其应用。教员是耿开桂同志(图二,二排左1),同班学员有张建国、丁媛琴、陈正富、吴仕敏、单荣、朱克等,我是一班班长(图二,前排左3)。

自此以后,我对程序设计情有独钟,特别感兴趣。虽然我不是专业的程序设计人员,但在1985年我又先后自学了BASIC语言和C语言。其中C语言达到了能编写工作程序的水平。

上个世纪九十年代,因评聘职称,临时抱佛脚我自学了Foxbase数据库管理程序设计语言,编写了几十个应用程序,并以此发表了多篇论文。

今年我72岁了,正在学python程序设计。我学python的主要目的还是以愉乐为主,以兴趣为导向。所以也就有时间有精力翻开以前的学习笔记,对六种语言的循环及循环嵌套作一个横向的对比。

图三6是J101机器语言设计的程序,其循环是用“0”条件转移指令“30”;“1”条件转移指令“31”和无条件转移指令“32”来实现的。

这是一个17条指令的排队小程序,使用了3条“30”指令,嵌套了两个循环。大循环的“30”指令在“0”条件下转移至0061入口进行循环;嵌套循环的“30”指令转移至0064入口进行循环;另一个“30”指令转移至006C(C是16进制数的12)入口进行循环。

图四为Z80汇编语言编写的一个定时2秒的延迟程序。程序之中的循环与循环嵌套使用了“JR…LOOP”为循环语句。其中“JR…LOOP1”为大循环,“JR…LOOP2”为小循环嵌套。

图五为BASIC语言的循环,这是一个BASIC语言编写的A数组改为B数组的程序。程序的循环及循环嵌套使用了“FOR…NEXT”为循环语句,以变量“J”和“I”控制是否跳出循环。

图六为C语言的循环,这是我用C语言编写的一个工作程序zxf02.C。其中的循环和循环嵌套是用“for 表达式”实现的。63条指令用了13个循环,有5个嵌套循环,用变量的值控制循环是否结束。

图七为Foxbase语言的循环,这是我用Foxbase语言编写的《办公自动化管理辅助系统》之中的“工资自动调整子系统”程序ZXFCX.PRG。Foxbase语言的循环及循环嵌套使用了“do whil 表达式…enddo”。其中,第一层大循环用“do whil bq1=“y””开始,以变量bq1不等于“y”,结束循环(enddo)。大循环之中嵌套了第二层的小循环,用“do whil bq2=“y””开始,以变量不等于“y”结束循环(enddo)。用“bq+数字”定义变量名是我们原部队专业程序设计员约定俗成的习惯。好处是比用ijk…等字母,更直观地看出变量之间的递进关系。

图八为python语言的循环,这是我编写的一个python语言程序zxf-python-cx05.py,及其电脑运行结果截图。题意为打印并计算1,2,3能组成多少个互不相同且数字可重复的三位数。

程序指令一共7条,但循环用了3个。使用“for 变量 in 表达式”为循环体。其大循环以“i”变量控制跳出循环,嵌套循环以“j”变量控制跳出循环,另一个以“k”变量控制跳出循环。

横向对比这六种程序语言设计的循环及循环嵌套,我认为还是python语言的循环简单明了,可读性更强。

学习程序设计对我的人生经历来说有着非凡的意义,每一次学习都是浓墨重彩的一笔。

如果说“学程序设计改变了我人生走向”,那言过其实。

但如果说,“学程序设计助力我走在正确的道路上”,那名副其实。

所以,我愿意毕生学习,直到永远。

好了,学python的老头,且学且看且珍惜!

《学python的老头》(八)周兴富2025/5/17

相关推荐

linux下C++ socket网络编程——即时通信系统(含源码)

一:项目内容本项目使用C++实现一个具备服务器端和客户端即时通信且具有私聊功能的聊天室。目的是学习C++网络开发的基本概念,同时也可以熟悉下Linux下的C++程序编译和简单MakeFile编写二:需...

Workerman的使用(workerman教程)

Workerman是什么?Workerman是一款纯PHP开发的开源高性能的PHPsocket服务框架。Workerman不是重复造轮子,它不是一个MVC框架,而是一个更底层更通用的socket服...

百万人在线的直播间实时聊天消息分发技术实践

本文由融云技术团队原创分享,原题“聊天室海量消息分发之消息丢弃策略”,内容有修订。1、引言随着直播类应用的普及,尤其直播带货概念的风靡,大用户量的直播间场景已然常态化。大用户量直播间中的实时互动是非常...

省钱兄JAVA 直播源码开发(省钱快报源码)

在现代社会,直播已经成为一种流行的社交和商业形式。越来越多的人通过直播平台展示自己的才艺、分享生活、进行教学,甚至进行产品销售。随着直播行业的发展,许多人希望能够参与到这一领域中,尤其是开发自己的直播...

编程革命彻底爆发,OpenAI最强智能体上线ChatGPT

OpenAI最强AI编程智能体真的来了!Codex震撼上线,由o3优化版codex-1加持,多任务并行,半小时干完数天软件工程任务。从今天起,AI编程正式开启新时代!刚刚,GregBrockman...

Springboot下的WebSocket开发(springboot websock)

今天遇到一个需求,需要对接第三方扫码跳转。一种方案是前端页面轮询后端服务,但是这种空轮询会虚耗资源,实时性比较差而且也不优雅。所以决定使用另一种方案,websocket。以前就知道websocket,...

epoll聊天室的实现(epoll使用详解(精髓))

1.服务端a.支持多个用户接入,实现聊天室的基本功能b.使用epoll机制实现并发,增加效率2.客户端a.支持用户输入聊天消息b.显示其他用户输入的信息c.使用fork创建两个进程子进程有...

自建娱乐聊天室—一起听歌吧!属于自己的交友聊天房

前言该项目算是老项目了,但最近粉丝群里的友友都让我写一下,那就写一下吧。项目类似于现在各大直播平台的聊天室,但又不像。它更加的自由开放,没有平台的礼物以及各种限制,如果你有来自五湖四海的朋友,想一起聊...

定时任务框架选型Quartz/Xxl-Job(定时任务调度框架)

以前公司平台中集成了定时任务功能,但平台内部实现比较简单,使用方式有些受限,比如说无法跟踪定时任务执行状态,无法自动解决集群状态下的任务争抢问题,因此考虑升级一下任务实现方式,搜集一番后,Quartz...

【推荐】一款开源免费的 ChatGPT 聊天管理系统,支持PC、H5等多端

如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!项目介绍GPTCMS是一款开源且免费(基于GPL-3.0协议开源)的ChatGPT聊天管理系统,它基于先进的GPT...

现在页面实时聊天都使用Websocket技术实现吗?

是的,现在实现页面实时聊天主要使用Websocket,在此之前,还有其它的一些技术,比如:AJAX轮询、FlashXMLSocket等。其中Ajax轮询就是定时向服务器发起请求,例如1秒钟请求一...

一对一源码开发,九大方面完善基础架构

以往的直播大多数都是一对多进行直播社交,弊端在于不能满足到每个用户的需求,会降低软件的体验感。伴随着用户需求量的增加,一对一直播源码开始出现。一个完整的一对一直播流程即主播发起直播→观看进入房间观看→...

揭秘PHP8.4的新特性,帮助您提高开发效率

PHP8.4作为一次重大版本更新,引入了多项提升开发效率和代码性能的新特性,以下是核心功能的总结:一、属性钩子(PropertyHooks)-功能描述:允许通过语法直接为类的属性定义get...

【验证码逆向专栏】某验三代、四代一键通过模式逆向分析

声明本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!本文章未经许可禁止转载,禁止任...

如何申请SourceForge免费PHP空间(国内免费php空间申请)

SF.net,即Sourceforge.net,是国外一个开源软件分享及管理平台,也是全球最大开源软件开发平台和仓库。Sourceforge.net为广大的开发者提供了软件发布平台,同时又提供了个人免...