for循环发展历史

随笔2个月前发布
22 0 0

for循环主流有五种类型,非主流有3种

for循环的由来

旧称:für,是德国发明的。

起初的是Superplan语言,发布:1949年。

作者:海因茨·鲁蒂休瑟(1918年,水瓶座)

Superplan的前代是Plankalkül语言。

Superplan的后代是Algol58语言。

Algol58是美国德国联合,发布:1958年。

Algol58语言将für循环更改为for循环。

Algol家族:Algol58→Algol60→Algol68。

关于for循环的名称

循环体是为了给定值执行的,就是循环体给定值i变量的值。

为什么起名i的变量

其实for循环随便命为变量的名字,而习惯i的名称,指的是:increment,或者index。

对于遍历数组,也可称之为e,即:element

而遍历字符串,可以称之为c,即:char

第一代:for小括号

特点:语法有小括号,中间的是步长。

我被誉为:上古时代循环,号称”仰韶文化”

für循环语法:

Für i=1(1)5:

Ende Index i

Algol58语言for循环:

for i:=1(1)5

begin

end

注:for小括号派生是Algol60语言for-until

第二代:for-until、for-while

她是一个联合,for联合:until、while。

在Algol60语言for循环是个摇篮,发扬光大。

起初是Algol60语言,发布:1960年。

Algol60是所有的祖先:包括C和Python。

Algol60方言(可支持了for-until、for-while):

Algol W、Coral66、Simula67。

for-until循环语法(指定次数):

for i:=1 step 1 until 5 do

begin

end for i

派生循环:for-to

for-while循环(指定循环条件):

for i:=1+1 while i<5 do

begin

end for;

for-while派生循环:for循环三段式。

第三代:for-to

for-to是for-until简化版,for-to默认步长(1)

起初的是英国发明,CPL语言,发布:1963年

作者:克里斯托弗·斯特雷奇(1916年,天蝎座)

继承者:

BASIC、Algol68、BCPL、Pascal、F#

for-to倒置替换downto。

注:在Algol68语言省略起始,默认为0。

在for-to设置步长有两个关键字:by、step。

CPL语言(1963年)for循环语法:

for-to类型:for i=1 to 5

步长:for i=1 to 5 by 2

倒置:for i=5 down to 1

for-to有若干派生循环:

for箭头(2004年,Scala语言)

Scala语言for循环:for( i <- 1 to 5){……}

for循环含头不含尾:for( i <- 1 until 5){……}

for循环步长:for( i <- 1 to 5 by 2){……}

for-to非主流:

for-til(coco、LiveScript)

for-thru(Maxima)

for-to指定次数的,而不可以指定次数的,那请用改为while循环,而同一时间独立的while循环

第四代:for循环三段式

最早的发明了史蒂芬·柯蒂斯·约翰逊,而肯·汤普逊借鉴了,首次引用了B语言,发布:1969年,for循环三段式代表作C家族。

for循环三段式的原型是Algol60语言for-while

三段式的由来:有两个分号划分为三个功能:第一个初始值、第二个循环条件,第三个步长。

for循环三段式特点:代替while循环,三个可以省略,但是分号不可以省略,例外:go语言可以省略分号。

for循环三段式非主流即:逗号提换成分号。

for循环三段式逗号是非主流:Gentee、Jolie、Dragon

第五代:for-in

for-in本质是遍历循环。

其中Python的子孙三代喜欢应用了for-in:SETL(1969)→ABC(1987)→Python→Nim

作者:

雅各布·西奥多·施瓦茨(杰克,1930,摩羯座)

SETL语言首次表示法:for 起始..结束 in 变量,非常流行的,SETL语法:

for i in [1..5] loop

end loop;

for-in现在是一个趋势,就连微软公司支持了语言:F#、Q#,以及苹果公司支持了Swift语言,谷歌开发安卓应用了Kotlin语言。

for-in有若干派生循环(用于遍历):

for冒号:Java语言,Octive语言

for箭头:Scala语言

Scala语言for遍历:for( e <- Array(10,20))

for-range:go语言

for-of:Ada(ada2012)、JS(ES6(2015))

for循环搭配:foreach(列举:起始…结束)

for循环守卫

又称循环过滤器。

起初SETL语言,发布:1969年。

SETL循环守卫:

for i in [1..5] | (odd i) loop

print(i);

end loop;

Scala循环守卫:

for(i<-1 to 5 if i%2!=0){

print(i)

}

for循环五件套

命明为for循环关键字后边加点东西,有五种类型:

foreach (遍历)、forall(并发)、forever(死循环)、forvalues(Stata)、forstep(PARI/GP)

foreach:起初Logo语言(1967年)

微软系列:C#、C++/CLI、VB.NET

PHP家族:Perl、PHP

foreach和for-in没有区别:Ballerina、Aikido

增加了foreach倒置:foreach_r,C3语言

forall:Algol68S、Postscript、Ada、Chapel

for循环非主流

for-thru、for-til、for逗号、for空格

for-thru

Maxima语言(1982年)

默认开头:for i thru 5 do (……);

指定开头:for i:1 thru 5 do (……);

步长:for i:1 thru 5 step 2 do (……);

for-til

COCO语言/LiveScript语言(2011年)

开始默认0:for i til 5

指定开头:for i from 1 til 5


海之皇(编程大叔),编程考古


© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...