从c,c++,python,scala到java,简单接触了这样一些编程语言,对于它们的基本语法中的循环想做个总结。
一、c,c++
C语言for循环(for语句)详解 (biancheng.net)
//这个链接比较详细,本人也从中摘取了一些知识点。
1.
while(表达式){
语句块
}
先计算“表达式”的值,当值为真(非0)时, 执行“语句块”;执行完“语句块”,再次计算表达式的值,如果为真,继续执行“语句块”……这个过程会一直重复,直到表达式的值为假(0),就退出循环,执行 while 后面的代码。
2.
do{
语句块
}while(表达式);//切记加这个分号
do-while循环与while循环的不同在于:它会先执行“语句块”,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while 循环至少要执行一次“语句块”。
3.
for(表达式1; 表达式2; 表达式3){
语句块
}
1) 先执行“表达式1”。
2) 再执行“表达式2”,如果它的值为真(非0),则执行循环体,否则结束循环。
3) 执行完循环体后再执行“表达式3”。
4) 重复执行步骤 2) 和 3),直到“表达式2”的值为假,就结束循环。
上面的步骤中,2) 和 3) 是一次循环,会重复执行,for 语句的主要作用就是不断执行步骤 2) 和 3)。
“表达式1”仅在第一次循环时执行,以后都不会再执行,可以认为这是一个初始化语句。“表达式2”一般是一个关系表达式,决定了是否还要继续下次循环,称为“循环条件”。“表达式3”很多情况下是一个带有自增或自减操作的表达式,以使循环条件逐渐变得“不成立”。
for 循环中的“表达式1(初始化条件)”、“表达式2(循环条件)”和“表达式3(自增或自减)”都是可选项,都可以省略(但分号;
必须保留)。
二、python
Python基础------几种循环结构详解_Senfos.W的博客-CSDN博客_python循环结构
1.
格式:for 参数 in 循环体:
pass
上述格式中,可以做循环体的内容有很多,如元组、列表、字符串等等。只要可以遍历、可循环的的内容均可作为循环体存在。
其中的参数,主要是用来存放每次循环体送来的单个元素,实现循环的作用。在实际使用中,常和if判断语句联合使用。
2.
格式:while True:
pass
while循环和for…in…循环的不同之处在于,while要先将循环变量初始化或者直接使用while True 这种死循环形式
3.
格式:for 参数 in range():
pass
range()的使用主要是和for循环一起出现的。
range()的形式有三种:
range(stop) :默认从0开始,给出结束的int型参数即可
range(start,stop) :
range(start,stop,step)
上述中的stop参数,都是取不到的,结尾的参数为stop-1。这也是python的一大特点,所有用括号扩起来的循环或者取值,都是***左取右不取***
三、java
Java 循环结构 – for, while 及 do…while | 菜鸟教程 (runoob.com)
1.
while( 布尔表达式 ) { //循环内容 }
2.
do { //代码语句 }while(布尔表达式);
3.
for(初始化; 布尔表达式; 更新) { //代码语句 }
Java5 引入了一种主要用于数组的增强型 for 循环。
Java 增强 for 循环语法格式如下:
for(声明语句 : 表达式) { //代码句子 }
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
四、scala
快速入门Scala(三):循环_von Neumann的博客-CSDN博客_scala循环语句快捷
1.
while(condition){ //while循环代码块 }
2.
do { //do...while循环代码块 } while(condition)
3.
for(var x <- iter ){ //for循环代码块 }
以上语法中,iter一般是一个可以迭代的对象,如Array或String,也可以是一个数字区间,如i to j(从i至j的所有整数),或者 i until j(从i至j除了j的所有整数)。其中,左箭头 <- 用于为变量 x 赋值。
总结,这些语言的循环都是类c的,掌握好c,学习其他是比较容易的,这些的区别主要在于for循环,python中有range(),java中有增强版(不过这个增强版在c++中也可以使用),还有scala这类较为独特的。
大多数使用一重循环,二重循环,各循环之间相互嵌套,也可以通过变量,使得二重循环变为一重循环等,除此之外,还有迭代,用的也是for循环,只是展现形式不同罢了。