大家好,我是小嘟嘟熊,今天我們來學習while循環,它和我們之前學的for有點相似,
語法
while (條件表達示){
語句塊}
While 循環會在指定條件為真時循環執行代碼塊。如:當i=1;i<10;這個條件為true,while就會循環執行語句塊,如果想讓它結束,就要把i值設置大於或等於10才能結束
我們做個例子,用while語句求從1累加到另一個數的和,在文本框裡輸入代碼:
var value = js.prompt("輸入一個值","while循環實例",100);
var i =1;
var sum = 0;
while (i <=value){
sum +=i;
i++;
}
var str = "從1累加到" + value + "的和值是" + sum ;
js.printf(str);
圖1
我們從代碼中可以看到,首先調用了輸入框,初始值是100,賦值給了value,此時value = 100
圖2
接著變量了i初始值為1,寓意從一加到100,我又變量了一個sum存儲累計的和值,初始值為0,下一行代碼就開始了循環,
i = 1;value = 100;while表達示中i<=value,這個條件為true,所以執行語句塊sum+=i,相當於把原先sum+i的值給了sum,第一次循環,i=1,sum = 0 +1;sum = 1; i++,運行次數+1,當i>100時結束循環
我們用立即窗口輸出果
圖3
大家可以看到,立即窗口中顯示"從1累加到100的和是5050"
實例2,密碼破解
假如有一個密碼3534,我們並不知道是多少,我們就要無數次的嘗試運登錄,這個時候就想到了while循環語句,讓計算機自己處理
代碼的實現
var pass = "3534" ;//密碼
//登錄函數
function loading(pw){
if (pw != pass){
return false;
}
return true;
}
var i =1;
//循環破解密碼
while (i <=10000){
if (loading(i)){
js.printf("該登錄密碼是:" + i );
break;
}
i++;
}
圖4
上圖中大家可看到初始密碼是3534,然後寫一個登錄驗證的函數,裡面的過程是,如果輸入的密碼不是3534,返回false,否則返回ture
變量一個i,代表我們嘗試登錄的密碼,使用while循環登錄10000次,if (loading(i))如果密碼為真,輸出密碼值,並結束循環,i++,嘗試下一個密碼
圖5
運行候,立即窗口中輸出了"登錄密碼是3534"
網上的那些暴力破解就是先把若干個密碼放到字典裡,然後讀到數組中,通過循環語句無數次嘗試登錄,直到找出真實的密碼'
一天一練,自己動手學的快