文西馬龍:http://blog.csdn.net/wenximalong/
js基本語法——三大流程控制
(1)順序控制聽其名而知其意,讓程序可以順序的執行。
案例:
var a=7;
window.alert("a="+a);
window.alert("hello");
a++;
window.alert("a="+a);
window.alert("★★★");
a++;
window.alert("a+="=a);
(2)分支控制
讓程序有選擇的執行,分支控制有三種①單分支②雙分支③多分支
案例:
編寫一個程序,額可以輸入人的年齡,如果該同志的年齡大於18歲,則輸出“你年齡大於18,要對自己的行爲負責!”
①單分支
if(條件表達式){
語句;
}
②雙分支
案例:
編寫一個程序,可以輸入人的年齡,如果該同志的年齡大於18歲,則輸出“你年齡大於18,要對自己的行爲負責!”。否則,輸出“你的年齡不大,這次放過你了”
if(條件表達式){
語句;
}else{
語句;
}
var age=20;
if(age>18){
window.alert("大於18");
}else{
window.alert("小於18");
}
③多分支
if(條件表達式1){
//執行
}else if(條件表達式2){
//執行
}else if…{ //可以有多個else if
}
else{ //可以沒有
}
案例:
編寫一個程序,可以輸入人的年齡,如果該同志的年齡大於18歲,則輸出“你年齡大於18,要對自己的行爲負責,送入監獄”。如果該同志的年齡大於10歲並且小於等於18,則輸出“你的年齡也不小了,把你送少管所”。其他情況,則輸出“小孩子,下次注意”。
舉例:
如果男,男廁所,女,女廁所,否則不上
var sex=window.prompt("請輸入性別");
if(sex=="男"){
window.alert("上男廁所");
}else if(sex=="女"){
window.alert("上女廁所");
}else{
window.alert("不上廁所");
}
注意:多分支,找到一個入口後,後面的都不判斷了。
var sex=window.prompt("請輸入性別");
if(sex=="男"){
window.alert("上男廁所");
}else if(sex=="女"){
window.alert("上女廁所");
}else if(sex=="女"){
window.alert("ok");
else{
window.alert("不上廁所");
}
判斷女後,輸出:上女廁所,然後就跳出if語句了。
強調:一旦找到一個滿足條件的入口,執行完畢後,就直接結束整個多分支。
③多分支 switch
基礎就要像磐石。
switch(條件表達式){
case 常量1:
語句; break;
case 常量2:
語句; break;
…
case 常量n:
語句; break;
default:
語句;
break;
}
注意:case有幾個都行,default可以沒有。當case1~n都不滿足的時候,則default。default並不一定要在最後。
switch的細節問題,看demo1.html
注意★★★★★,對demo1.html仔細分析實踐,就會搞明白了。
demo1.html
<html>
<head>
<script language="javascript">
var a=890;
switch(a){
case 890:
window.alert("這是890");
break; //break 作用是跳出整個swithc語句
case 90:
window.alert("這是90");
break;
case 890:
window.alert("沒有匹配的值");
break;
}
//********
//當break語句沒有的時候,會接着向下執行,直到碰到第二個break,也不會去判斷90了,從入口890進來了已經。
var a=890;
switch(a){
case 890:
window.alert("這又是890"); //輸出
//這裏沒有break語句了
case 90:
window.alert("這是90"); //輸出後跳出
break;
case 890:
window.alert("沒有匹配的值");
break;
}
window.alert("end…");
//********
// 這個會出現什麼提示?會彈出三個對話框,因爲1沒有任何匹配就進入了default,因爲沒有break,就接着執行window.alert("今天是星期一");因爲又沒有break,就再執行window.alert("今天是星期二");
var flag=1;
switch(flag){
default:
window.alert("默認");
case 'a':
window.alert("今天是星期一");
case 'b':
window.alert("今天是星期二");
}
//********
//下面的這個又會提示什麼呢?1.1有匹配了,只顯示1.1,然後語句結束。
var flag=1.1;
switch(flag){
default:
window.alert("默認1.1");
case 'a':
window.alert("今天是星期一1.1");
case 'b':
window.alert("今天是星期二1.1");
case 1.1:
window.alert("1.1");
}
//********
//對上面的程序再深一步,下面的這個又會提示什麼呢?1.2有匹配了,先顯示1.2,沒有遇到break,就繼續執行window.alert("今天是星期二1.2");還是沒有遇到break,再執行window.alert("默認1.2");程序結束。
var flag=1.2;
switch(flag){
case 'a':
window.alert("今天是星期一1.2");
case 1.2:
window.alert("1.2");
case 'b':
window.alert("今天是星期二1.2");
default:
window.alert("默認1.2");
}
</script>
</head>
<body></body>
</html>
表達式可以是js支持的所有數據類型
注意:
(1)js的switch語句類型可以是js支持的任何類型(數組和對象除外)
(2)case後面的數據類型可以 任意(數組和對象除外)
(3)break作用是跳出整個switch語句
(4)如果沒有匹配的則執行default
①這個會出現什麼提示?
var flag=1;
switch(flag){
default:
window.alert("默認");
case 'a':
window.alert("今天星期一");
case 'a':
window.alert("今天星期二");
}
②這個又會提示什麼呢?
var flag=1.1;
switch(flag){
default:
window.alert("默認");
case 'a':
window.alert("今天是星期一");
case 'b':
window.alert("今天是星期二");
case 1.1:
window.alert("1.1");
}
案例:
編寫一個程序,可以接收一個字符串,比如:a,b,c,d,e,f,g a表示星期一,不表示星期二…根據用戶的輸入顯示相依的信息,用switch語句。