你可能不知道的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的语法为:
- while(条件语句){
- 代码块
- }
或者:
- while(条件语句) 代码;
while的含义非常简单,只要条件语句为真,就一直执行后面的代码,为假就停止不做了。例如:
- 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的语法是:
- do{
- 代码块;
- }while(条件语句)
即:先执行代码块,再判断条件是否成立,如果成立,继续执行代码,不成立退出循环。
- 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循环适用于循环次数已知的情况,语法规则:
- for(初始化语句; 循环条件; 步进操作){
- 循环体
- }
每次判断循环条件,条件成立执行循环,执行完毕后,初始值进行步进操作,示例代码:
- 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。
初始值为空的情况:
- int[] arr = {1,2,3,4};
- int i=0;
- for(;i<arr.length;i++){
- System.out.println(arr[i]);
- }
这是因为,初始值在循环前已定义。
在for中,每个语句都是可以为空的,也就是说:
- for(;;){}
是有效的,这是个死循环,只不过每次都没有做任何事,相当于python中每次执行pass语句。
d、foreach
foreach的语法如下代码所示:
- 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、
- li=[1,2,3,4]
- for i in li:
- print(i)
上述代码中,i代表列表li的每一个元素。语法规则为for ...in ...,相当于java中的foreach。
b、
- 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、
- 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、
- dic={'a':1,'b':2}
- for k in dic:
- print(k)
上述代码中,相当于对字典的key进行循环,等价于下面的代码:
- dic={'a':1,'b':2}
- for k in dic.keys():
- print(k)
e、
- dic={'a':1,'b':2}
- for k in dic.values():
- print(k)
上述代码中,相当于对字典的values进行循环。
f、
- dic={'a':1,'b':2}
- for k,v in dic.items():
- print(k,v)
上述代码中,k代表字典的key,v代表字典的value值。
3.2 while循环
a、
- i=1
- while i:
- pass
上述代码中,while i:即当i为真值时执行循环,在python中除了none、空字符串、空列表、空字典、空元组、False,其他均为真值,即为True。
b、
- while True:
- pass
上述代码适用于死循环,即条件默认为真。
c、其它通用while循环:
- while 条件:
- pass
据本人经验,python中如果需要将本来已经false的条件作为循环条件,可以采取以下方案:
方案一、
- i=False
- while i is not True:
- pass
或者:
- i=False
- while i is False:
- pass
方案二、
- i=False
- while i ==False:
- pass
四、JavaScript循环语句
a、while循环
- var cont=0;
- while(cont<10){
- console.log(cont);
- cont++;
- }
上述代码可看出JavaScript while循环需要先给定初始值,每次判断循环条件,条件为真执行循环,并在循环内部对初始值进行自增。
如果想生成死循环,上述代码可改成:
- while(true){
- console.log(1);
- }
此时,不需要设置初始值和自增。
b、do/while
JavaScript中do/while和java中do/while一样,参考上文中java do/while。需要注意JavaScript中定义变量用var。
- do{
- 代码块;
- }while(条件语句)
即,先执行代码块,再判断条件是否成立,成立则继续执行下次循环,不成立退出循环。
c、for
- 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
- 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语句:
- $(':text').each(function(){
- console.log($(this).val()) ;
- });
语法规则:标签集合.each(匿名函数);
上述代码的意思是:获取所有inp标签中type='text',的标签,并对其进行循环,每次打印它的值。
jQuery中跳出循环用return:
return ture:退出本次循环,执行下次循环,相当于其它语言的continue;
return false:退出本层循环,即退出当前each,相当于其它语言的break;
你可能不知道的java、python、JavaScript以及jquary循环语句的区别的更多相关文章
- 震惊!90%的程序员不知道的Java知识!
震惊!90%的程序员不知道的Java知识! 初学Java的时候都会接触的代码 public static void main(String[] args){ ... } 当时就像背公式一样把这行代码给 ...
- 浅谈Java和JavaScript中变量和数据类型的区别
对于一门编程语言的学习,如果第一步是安装环境,那么第二步一定是学习这门语言的基本规则,变量和数据类型则首当其冲 JavaScipt作为一个蹭Java热度而命名的语言,在很多方面和Java也有一定的相似 ...
- Java语言----三种循环语句的区别
------- android培训.java培训.期待与您交流! ---------- 第一种:for循环 循环结构for语句的格式: for(初始化表达式;条件表达式;循环后的操作表达式 ...
- javascript里的循环语句
前序:我一直对于for跟for..in存在一种误解,我觉得for都能把事情都做了,为啥还要for...in...这玩意了,有啥用,所以今天就说说JavaScript里的循环语句. 循环 要计算1+2+ ...
- 【Java基础】【04循环语句&方法】
04.01_Java语言基础(循环结构概述和for语句的格式及其使用) A:循环结构的分类 for,while,do...while B:循环结构for语句的格式: for(初始化表达式;条件表达式; ...
- JavaScript中:表达式和语句的区别
JavaScript中:表达式和语句的区别 Javascript语言精粹:表达式是由运算符构成,并运算产生结果的语法结构.程序是由语句构成,语句则是由“:(分号)”分隔的句子或命令.如果在表达式后面加 ...
- Java学习笔记八:Java的流程控制语句之循环语句
Java的流程控制语句之循环语句 一:Java循环语句之while: 生活中,有些时候为了完成任务,需要重复的进行某些动作.如参加 10000 米长跑,需要绕 400 米的赛道反复的跑 25 圈.在 ...
- Python - 条件控制、循环语句 - 第十二天
Python 条件控制.循环语句 end 关键字 关键字end可以用于将结果输出到同一行,或者在输出的末尾添加不同的字符,实例如下: Python 条件语句是通过一条或多条语句的执行结果(True 或 ...
- 编程开发(C/C++&Java&Python&JavaScript&Go&PHP&Ruby&Perl&R&Erlang)
使用Docker快速部署主流编程语言的开发.编译环境及其常用框架,包括C.C++.Java.Python.JavaScript.Go.PHP.Ruby.Perl.R.Erlang等. 在今后采用编程语 ...
随机推荐
- 装b指南
提溜一个糖水黄桃罐头瓶,放在桌边,坐下以后,脖子略微后仰,翘着二郎腿,低头盯着屏幕看需求. 最好点一根烟,牌子无所谓,能冒烟就行.要得就是云山雾绕的感觉,从烟雾中眯着眼睛看出去,一副胸有成竹的样. 一 ...
- 线段树基础模板&&扫描线
线段树的单点更新+区间求和 hdu1166敌兵布阵 Input 第一行一个整数T,表示有T组数据. 每组数据第一行一个正整数N(N<=),表示敌人有N个工兵营地 ,接下来有N个正整数,第i个正整 ...
- 11.2---字符串数组排序,删除变位词(CC150)
这道题主义的就是,要利用数组自带的sort函数. 此外,注意,利用hash来判断是否出现了. public static ArrayList<String> sortStrings(Str ...
- Git – Fast Forward 和 no fast foward
Git 很是强大,在体验过rebase的华丽之后,再次发现之前在TFS上遇到的问题一下都有解了.但也印证了Git深入并非易事.这篇就谈下一个容易迷糊的概念:Fast forward. Fast-For ...
- (转)高性能网站架构之缓存篇—Redis集群增删节点
标签: 高性能架构集群缓存redis 上一篇文章,我们搭建了Redis-cluster集群,这篇博客跟大家讲一下如何在一个运行的集群上增加节点或者删除节点. Redis集群添加节点 首先我们要新建立一 ...
- iOS self = [super init]
self = [super init] 这个问题一直不太明白,今天研究了一下,在stackoverflow找到了下面的答案: http://stackoverflow.com/questions/29 ...
- delphi 快捷键
1. 编辑器 按键时候请注意输入法: 英文状态 Code Folding (Fold ---Methods) [Ctrl + Shift] + K + M
- HDU 4940 Destroy Transportation system(无源汇有上下界最大流)
看不懂题解以及别人说的集合最多只有一个点..... 然后试了下题解的方法http://blog.sina.com.cn/s/blog_6bddecdc0102uzka.html 首先是无源汇有上下界最 ...
- 针对SYN洪水攻击的防御措施
可以运用sysctl命令进行配置,由于本命令参数较多,这里只简单记录几个比较常用的参数: 1.tcp_max_syn_backlog 这个参数指定了后备队列可维持的TCP半开连接的数目,如果该值设定很 ...
- 魅族MX3\MX2 在MTP模式下恢复手机误删数据教程
昨天帮室友的魅族mx3升级系统,结果不小心把他手机里的照片删了.但是自从flyme升级到3后,以前的U盘模式就改成了MTP模式,这样再连接电脑后就没办法用电脑上的数据恢复软件恢复数据了,因为压根就检测 ...