你可能不知道的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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM