你可能不知道的java、python、JavaScript以及jquary循环语句的区别
一.概述
java循环语句分为四种形式,分别是 while, do/while, for, foreach;
python中循环语句有两种,while,for;
JavaScript中循环语句有四种,while,do/while,for,for/in
jQuery循环语句each
二、java循环语句
a、while
while的语法为:
1 2 3 | while (条件语句){ 代码块 } |
或者:
1 | while (条件语句) 代码; |
while的含义非常简单,只要条件语句为真,就一直执行后面的代码,为假就停止不做了。例如:
1 2 3 4 5 6 7 8 9 10 | Scanner reader = new Scanner(System.in); System.out.println( "please input password" ); int num = reader.nextInt(); int password = 6789 ; while (num!=password){ System.out.println( "please input password" ); num = reader.nextInt(); } System.out.println( "correct" ); reader.close(); |
上述代码中,只要密码不等于6789,就一直提示输入,reader.nextInt()从屏幕接收一个数。
b、do/while
不管条件语句是什么,代码块都会至少执行一次,则可以使用do/while循环。do/while的语法是:
1 2 3 | do { 代码块; } while (条件语句) |
即:先执行代码块,再判断条件是否成立,如果成立,继续执行代码,不成立退出循环。
1 2 3 4 5 6 7 8 9 | Scanner reader = new Scanner(System.in); int password = 6789 ; int num = 0 ; do { System.out.println( "please input password" ); num = reader.nextInt(); } while (num!=password); System.out.println( "correct" ); reader.close(); |
c、for循环
for循环适用于循环次数已知的情况,语法规则:
1 2 3 | for (初始化语句; 循环条件; 步进操作){ 循环体 } |
每次判断循环条件,条件成立执行循环,执行完毕后,初始值进行步进操作,示例代码:
1 2 3 4 | int [] arr = { 1 , 2 , 3 , 4 }; for ( int i= 0 ;i<arr.length;i++){ System.out.println(arr[i]); } |
只要i小于arr的长度4,就执行循环,需要注意的是,循环执行完毕后,i=4,即虽然没有执行循环,但i自增1。
初始值为空的情况:
1 2 3 4 5 | int [] arr = { 1 , 2 , 3 , 4 }; int i= 0 ; for (;i<arr.length;i++){ System.out.println(arr[i]); } |
这是因为,初始值在循环前已定义。
在for中,每个语句都是可以为空的,也就是说:
1 | for (;;){} |
是有效的,这是个死循环,只不过每次都没有做任何事,相当于python中每次执行pass语句。
d、foreach
foreach的语法如下代码所示:
1 2 3 4 | int [] arr = { 1 , 2 , 3 , 4 }; for ( int element : arr){ System.out.println(element); } |
foreach使用冒号 : ,冒号前面是循环中的每个元素,包括数据类型和变量名称,冒号后面是要遍历的数组或集合,每次循环element都会自动更新。
e、循环控制:
break;跳出本层循环。
执行break后,不再执行循环的任何操作,初始值也不会自增。
continue;跳出本次循环,初始值自增,执行下次循环。
三、python循环语句
3.1 for 循环
a、
1 2 3 | li = [ 1 , 2 , 3 , 4 ] for i in li: print (i) |
上述代码中,i代表列表li的每一个元素。语法规则为for ...in ...,相当于java中的foreach。
b、
1 2 3 | li = [ 1 , 2 , 3 , 4 ] for i,j in enumerate (li): print (i,j) |
上述代码中,i代表列表li的索引,j代表li的每一个元素。
注:索引默认从0开始,可设置 for i,j in enumerate(li,1):从而设置索引从1开始。
c、
1 2 3 4 | li1 = [ 1 , 2 , 3 , 4 ] li2 = [ 4 , 5 , 6 , 7 ] for i,j in zip (li1,li2): print (i,j) |
上述代码中,i代表列表li1的元素,j代表li2的元素。
d、
1 2 3 | dic = { 'a' : 1 , 'b' : 2 } for k in dic: print (k) |
上述代码中,相当于对字典的key进行循环,等价于下面的代码:
1 2 3 | dic = { 'a' : 1 , 'b' : 2 } for k in dic.keys(): print (k) |
e、
1 2 3 | dic = { 'a' : 1 , 'b' : 2 } for k in dic.values(): print (k) |
上述代码中,相当于对字典的values进行循环。
f、
1 2 3 | dic = { 'a' : 1 , 'b' : 2 } for k,v in dic.items(): print (k,v) |
上述代码中,k代表字典的key,v代表字典的value值。
3.2 while循环
a、
1 2 3 | i = 1 while i: pass |
上述代码中,while i:即当i为真值时执行循环,在python中除了none、空字符串、空列表、空字典、空元组、False,其他均为真值,即为True。
b、
1 2 | while True : pass |
上述代码适用于死循环,即条件默认为真。
c、其它通用while循环:
1 2 | while 条件: pass |
据本人经验,python中如果需要将本来已经false的条件作为循环条件,可以采取以下方案:
方案一、
1 2 3 | i = False while i is not True : pass |
或者:
1 2 3 | i = False while i is False : pass |
方案二、
1 2 3 | i = False while i = = False : pass |
四、JavaScript循环语句
a、while循环
1 2 3 4 5 | var cont=0; while (cont<10){ console.log(cont); cont++; } |
上述代码可看出JavaScript while循环需要先给定初始值,每次判断循环条件,条件为真执行循环,并在循环内部对初始值进行自增。
如果想生成死循环,上述代码可改成:
1 2 3 | while ( true ){ console.log(1); } |
此时,不需要设置初始值和自增。
b、do/while
JavaScript中do/while和java中do/while一样,参考上文中java do/while。需要注意JavaScript中定义变量用var。
1 2 3 | do { 代码块; } while (条件语句) |
即,先执行代码块,再判断条件是否成立,成立则继续执行下次循环,不成立退出循环。
c、for
1 2 3 4 5 6 | var a=document.getElementById( 'k1' ).children; for ( var i=0;i< a.length;i++){ var inp=a[i]; var at=inp.getAttribute( 'type' ); if (at== 'text' )inp.setAttribute( 'value' , '123' ); } |
上述代码是获取id='k1'下所有type='text'的标签并设置value值等于'123'.
d、for in
1 2 3 4 5 | var c1=document.getElementById( 'i1' ).getElementsByTagName( 'input' ); for ( var i in c1){ if (c1[i].checked)c1[i].checked= false ; else c1[i].checked= true ; } |
上述代码是找到所有的input标签,并对其进行循环,这里i代表索引,上述代码操作的是反选复选框,如果被选上,择设置该标签的checked=false,反之,设置为true;
五、jQuery循环语句
each语句:
1 2 3 | $( ':text' ).each( function (){ console.log($( this ).val()) ; }); |
语法规则:标签集合.each(匿名函数);
上述代码的意思是:获取所有inp标签中type='text',的标签,并对其进行循环,每次打印它的值。
jQuery中跳出循环用return:
return ture:退出本次循环,执行下次循环,相当于其它语言的continue;
return false:退出本层循环,即退出当前each,相当于其它语言的break;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?