你可能不知道的java、python、JavaScript以及jquary迴圈語句的區別

来源:http://www.cnblogs.com/wanghzh/archive/2016/07/15/5672009.html
-Advertisement-
Play Games

一.概述 java迴圈語句分為四種形式,分別是 while, do/while, for, foreach; python中迴圈語句有兩種,while,for; JavaScript中迴圈語句有四種,while,do/while,for,for/in jQuery迴圈語句each 二、java迴圈語 ...


一.概述

  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;

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 上篇已經簡單的構建了一個Prism的程式,現在我們需要添加一個Logger,Prism本身自帶一個功能簡單的TextLogger,但是我們希望能用.Net常用的Log4net。所以我們需要重載掉Bootstrapper中的CreateLogger方法。 新建一個PrismSample.Infrast ...
  • 控制器Controller 在添加控制器前,我們先看下它為我們自動生成的一些Controller,我們看下AccountController.cs 來看下登錄驗證方法Login !!!跟以前的寫法好像很多地方不一樣?async這個應該是非同步 乾什麼用的呢 ? Task<IActionResult> ...
  • 1.Yoeman? yoeman是一個自動化腳手架工具。它提供很多generator,generator相當於VisualStudio的模板,用來初始化項目。更多的就不多說了,寫一遍都寫不完,自己看吧。 http://yeoman.io/ 2.安裝 yoeman 安裝yoman之前你需要先安裝npm ...
  • ORM到底哪家強? 很多人都想知道這個問題,自已也沒測試過,只能道聽途說。 閑的無聊就將幾個ORM拿出來比一比,假如懷疑測試代碼有問題可以將它下載下來慢慢研究。 參賽ORM 1、SqlSugar:是一款輕量級的MSSQL ORM ,除了具有媲美ADO的性能外還具有和EF相似簡單易用的語法,地址:ht ...
  • 通過TopSelf組件實現服務的自宿主,簡化服務的安裝和使用過程。 ...
  • 打開IIS10,進入應用程式池,右邊“設置應用程式池預設設置”中,啟用32位應用程式,False改為True即可。 ...
  • ...
  • Vs2015、Vs2013親測可行 感謝NopCommerce探索群(75272942)-深圳-阿海(13913127)提供解決方案 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...