javascript
JS流程控制语句
## 流程控制語(yǔ)句
**3-1條件語(yǔ)句**
給定一個(gè)判斷條件,并在程序執(zhí)行過(guò)程中判斷該條件是否成立。
*3-1-1單分支語(yǔ)句*
由一個(gè)if組成,如果條件成立,則進(jìn)入代碼塊開(kāi)始執(zhí)行語(yǔ)句。
語(yǔ)法:
?
如果條件不是一個(gè)布爾值,那么會(huì)被自動(dòng)轉(zhuǎn)換為布爾值
示例:
?
*3-1-2雙分支語(yǔ)句*
就是由兩個(gè)分支線,如果if條件不成立,那么就會(huì)跳入到else語(yǔ)句中,語(yǔ)法時(shí):
**三目運(yùn)算符**
if...else語(yǔ)句的一個(gè)縮寫(xiě)方式,就是使用三目運(yùn)算符 ?:
語(yǔ)法:條件 ? (條件為真時(shí)執(zhí)行的代碼):(條件為假時(shí)執(zhí)行的代碼)
示例:let a = 3,b = 8,c = 5; let max = a>b ? (a>c?a:c) : (b>c?b:c); console.log(max);//8
?
*3-1-3多分支語(yǔ)句*
多個(gè)if...else語(yǔ)句可以組合在一起,形成邏輯決策樹(shù),
語(yǔ)法:
if(條件){
//執(zhí)行語(yǔ)句
}else if(條件){
//執(zhí)行語(yǔ)句
}else{
//執(zhí)行語(yǔ)句
}
**switch語(yǔ)句**
有一種比多分支結(jié)構(gòu)更清晰的語(yǔ)句結(jié)構(gòu),就是switch語(yǔ)句。語(yǔ)法:
switch(條件){
case 1:
//執(zhí)行語(yǔ)句
break;
case 2:
//執(zhí)行語(yǔ)句
break;
case 3:
//執(zhí)行語(yǔ)句
break;
default:
//執(zhí)行語(yǔ)句
}
*break關(guān)鍵字*
break時(shí)用于跳出某個(gè)case,如果不書(shū)寫(xiě)break的話,進(jìn)入case以后會(huì)繼續(xù)進(jìn)入后面的case語(yǔ)句。
*default關(guān)鍵字*
default用于書(shū)寫(xiě)默認(rèn)的條件,如果前面的都不滿足的話,就進(jìn)入到default語(yǔ)句里面。
**3-2循環(huán)語(yǔ)句**
*3-2-1while循環(huán)*
whlie循環(huán)是比較常見(jiàn)的一種,語(yǔ)法為:
whlie(表達(dá)式){
//循環(huán)體
}
?
無(wú)窮循環(huán)又叫死循環(huán)
*3-2-2do...whlie循環(huán)*
首先執(zhí)行一次循環(huán)體,然后檢測(cè)循環(huán)條件表達(dá)式的值是否為真,是真的話,則重復(fù)執(zhí)行循環(huán)語(yǔ)句。
**3-2-3for循環(huán)**
for循環(huán)是最常見(jiàn)的一種循環(huán)。
語(yǔ)法為:
for(表達(dá)式1;表達(dá)式2;表達(dá)式3){
//循環(huán)體
}
執(zhí)行的順序?yàn)?#xff1a;首先執(zhí)行表達(dá)式1,然后進(jìn)行表達(dá)式2的判斷,如果表達(dá)式2成立,那么執(zhí)行循環(huán)體,循環(huán)體執(zhí)行結(jié)束后,進(jìn)行表達(dá)式3,然后回頭再看表達(dá)式2是否成立,成立就執(zhí)行循環(huán)體,不成立就循環(huán)結(jié)束。
?
*遍歷數(shù)組*
使用for循環(huán)來(lái)對(duì)數(shù)組進(jìn)行遍歷。
示例:
?
在使用for循環(huán)來(lái)遍歷數(shù)組的時(shí)候,使用一個(gè)變量來(lái)存儲(chǔ)數(shù)組的長(zhǎng)度,這樣可以提升程序的小路,因?yàn)椴挥妹看味既≈匦掠?jì)算數(shù)組的長(zhǎng)度。
示例:
?
**3-2-4循環(huán)的嵌套**
我們可以把一個(gè)循環(huán)放在另一個(gè)循環(huán)里面,從而構(gòu)成循環(huán)的嵌套,里面的循環(huán)稱之為內(nèi)層循環(huán),外面的循環(huán)稱之為外層循環(huán),外層循環(huán)一次,內(nèi)層循環(huán)就是把自己的全部循環(huán)執(zhí)行完。
循環(huán)嵌套示例:打印九九乘法表
?
使用雙層for循環(huán)遍歷一個(gè)二維數(shù)組:
**3-2-5break和continue**
*break*
用于跳出switch語(yǔ)句或者循環(huán)語(yǔ)句,注意的是:break語(yǔ)句不能直接作用于if語(yǔ)句,除非if語(yǔ)句是被嵌套在循環(huán)語(yǔ)句里面的。
語(yǔ)法:
for(表達(dá)式1;表達(dá)式2;表達(dá)式3){
if(條件){
//執(zhí)行語(yǔ)句
break;
}
}
*continue語(yǔ)句*
結(jié)束本次循環(huán)(不是終止整個(gè)循環(huán)),即跳過(guò)循環(huán)體中的continue語(yǔ)句后面的語(yǔ)句,開(kāi)始下一次循環(huán)。
break語(yǔ)句和continue語(yǔ)句的區(qū)別:
continue語(yǔ)句的意思是結(jié)束本次循環(huán),break語(yǔ)句是結(jié)束整個(gè)循環(huán)。
示例:
break語(yǔ)句:
for(1,2,3){
a;
b;
c;
break;//執(zhí)行a,b循環(huán)結(jié)束
c;
d;
}
continue語(yǔ)句:
for(1,2,3){
a;
b;
continue;//執(zhí)行a,b后結(jié)束本次循環(huán)
c;
d;
}
?
?
for循環(huán)示例:
// 求100到200之間的3的所有倍數(shù) // 10個(gè)數(shù)為一行,打印一次 let j=0; let arr =""; for(let a=100;a<=200;a++){if(a % 3 == 0){j++;arr =arr+a+" ";if(j%10==0){console.log(arr);arr ="";//消除已經(jīng)打印出來(lái)了的,不重復(fù)打印 }} } console.log(arr);?
// 100-999以內(nèi)的水仙花數(shù),即一個(gè)數(shù)字它的每一位數(shù)的立方加起來(lái)等于這個(gè)數(shù),如:153=1*1*1+5*5*5+3*3*3 let i; for(i=100;i<=999;i++){let bai = parseInt(i / 100);let shi = parseInt(i / 10)%10;let ge = i % 10; if( i == bai*bai*bai+shi*shi*shi+ge*ge*ge){console.log(i);} }?
?
// 斐波那契數(shù)列 // 0,1,1,2,3,5,8,13,21.... // 用戶隨機(jī)輸入一個(gè)位數(shù),判斷這是數(shù)列中的哪個(gè)數(shù) let readline = require("readline-sync"); console.log("請(qǐng)輸入數(shù)字:") let bit;//位數(shù) let num1 =0;//第一位數(shù) let num2 =1;//第二位數(shù) let temp =0;//臨時(shí)變量 bit = parseInt(readline.question(""));for(let i=3;i<=bit;i++){temp = num2;num2 = num1 + num2;num1 = temp;} console.log("該位數(shù)上的數(shù)為:",num2);?
轉(zhuǎn)載于:https://www.cnblogs.com/lyl-0667/p/11111636.html
超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
- 上一篇: 更改SYS密码,expiry_date
- 下一篇: Python程序中的线程操作-锁