<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    zhyiwww
    用平實的筆,記錄編程路上的點點滴滴………
    posts - 536,comments - 394,trackbacks - 0

    第五章 WMLScript腳本程序設計(上)

    [日期:2004-11-23] 來源:賽迪網? 作者: [字體:]
    作為一種編輯語言,WMLScript提供了強大的函數、語句和庫功能,以及外部編輯、訪問控制等支持,同時對程序運行中可能產生的錯誤給出了檢測手段和具體的解決辦法。這些內容屬于WMLScript的腳本程序設計知識和進一步的編程規定,我們本章就對此進行詳細介紹。

    5.1 語句

    前面我們學習了變量、操作符和表達式,但僅由這些內容并不能完成某個完整的功能,因為他們不能形成完整的操作或處理程序。變量就如同與嚴重的單詞,表達式如語言中的詞組,他們都不能表達一個完整的意思;只有語句,是語言中完整的句子,能夠表達完整的意思并實現某個完整的功能。WML Script提供了豐富的語句功能,使用這些語句我們可以在WML的卡片中建立交互功能和其他需要的復雜功能。

    在WML Script中,每條語句的后面都需要以一個分號(;)結尾。為了養成嚴謹的編程風格,建議大家編寫腳本時,語句后一定要加上分號(;),這也有助于我們形成一種良好的編程習慣。

    WML Script語句的書寫和排列格式比較自由。我們可以在同一程序行中連續寫上多個語句,也可以把同一語句分成多行排列。WML Script將根據分號(;)來確定語句的具體內容。

    WML Script的語句主要包括兩類。第一類是基本語句,如空語句、表達式語句、塊語句、變量語句和return語句等;第二類是條件語句,如if語句;第三類是循環語句,如while語句、for語句、break語句和continue語句等。下面我們分別講解這些語句的語法、功能和使用方法。

    5.1.1 基本語句

    WML Script基本語句主要用于程序格式控制和變量聲明,其中有些語句我們已經不太陌生了。

    空語句

    空語句用于定義一個空的程序行,它沒有任何標識符和操作符,也不執行任何操作。它只是以分號(;)結束。其語法格式為:

    ;

    顯然,空語句是一種十分特殊的語句。由是我們為了讓程序具有更好的可讀性,通常在程序中的適當地方加上幾個空語句,以起到分隔或突出的作用。例如,下面的幾行程序中就含有一個空語句:

    str="Hello";

    val=25;

    ;

    MyVal=val*val+5;

    alert("Hi,Hi!!!");

    再如,while語句用于判斷一個條件并在條件滿足的時候執行相應的任務,但如果希望條件滿足的時候什么也不作,那么就可以給它配上一個空語句,使之條件滿足的執行空操作:

    while(!poll(device));

    這實際上是while語句和空語句組成的兩條語句。其中的分號(;)在這里就代表了空語句。這兩條語句的作用是在poll()函數為真()之前一直等待。

    表達式語句

    表達式語句用于向變量賦值,或進行數學計算,或進行函數調用。表達式語句也是我們最常用的一種語句,語法格式為:

    表達式;

    下面幾行程序都是合法的表達式語句:

    str="Hey"+yourName;
    val3=prevVal+4
    counter++;
    myValue1=counter,myValue2=val3
    alert("Watch out!");
    retVal=16*Lang.max(val3,counter);


    塊語句

    塊語句使用兩個花括號({ })包含一個語句集,形成一個語句體。WML Script的許多語句都需要使用塊語句來實現語句體,快語句的語法格式為:

    {

    語句列表;

    }
    下面的簡單程序就是使用塊語句的例子:


    }
    vari=0;
    var x=Lang.abs(b);
    popUp("Remember!");

    }

    變量語句

    變量語句用于生命變量并可進行變量的初始化賦值。如果用戶不賦值,那么WML Script會自動將變量語句生命的變量賦予一個空字符串("")?;镜恼Z法格式為:

    var 變量名;

    如果像一次生命多個變量,則相鄰變量名之間使用逗號(,)間隔,其語法格式為:

    VAR 變量名1,變量名2......,變量名n;

    如果想在生命變量時同時初始化變量,則可按如下語法格式書寫:

    var 變量名=初始化

    為便于大家更好的掌握變量語句,我們給出一個多出使用該語句的程序:


    function count(stu){

    var result=0; //聲明變量的同時初始化變量

    while(str!=""){

    var ind=0; //每次循環都初始化一次

    // 為退出循環,本塊語句內應當提供修改變量str值的語句

    };

    return result

    };

    function example(param){

    var a=0;

    if(param>a){

    var b=a+1; //聲明b變量的同時使用a變量初始化b變量
    }else{

    var b=a+2; //聲明c變量的同時使用a變量初始化c變量
    };

    return a; //返回a變量的值

    };


    注釋語句

    嚴格來講,注釋語句在WML Script中還不算是真正的語句,它只是一種前指向的規定。不過它也有嚴格的語法和標注方法,所以我們這里還是像其他編程語言處理的一樣,把WML Script注釋方法以語句的形式介紹一下。

    注釋在程序執行的時候沒有任何作用,但是可以用于對程序進行解釋,則增強程序的可讀性。為了形成良好的編程風格,我們應該養成書寫注釋的良好習慣,注釋有兩種表達方式:

    (1)通過雙斜線注釋一行,這樣在雙斜先后的字符將成為注釋而不被執行。該注釋行可以單獨一行書寫,也可以放在其他語句的后面。

    例如,可以進行如下所示的注釋:

    //變量j用于小數每月的天數

    j=0; //我們這里將j賦值為0

    (2)通過符號“/*”和“*/”來規定注釋語句,這種注釋方式可以進行多行注釋,符號“/*”和“*/”之間的內容就是注釋語句。例如,可以進行如下所示的多行注釋:

    /*我們定義了兩個變量:i和j。其中:

    i用于描述每年中的月數,

    而j用于描述每月的天數*/

    j=0; /*我們這里將j賦值為0*/

    return語句

    return語句主要用在函數體中,在函數結束前,可以通過return語句,把函數處理的結果返回給調用函數的語句。它的語法格式如下:

    return表達式;

    下面的函數給出了應用return語句的例子:


    function square(x){

    if(!(Lang.isFloat(x)))return invalid;

    return x*x

    };


    5.1.2 條件語句

    在條件語句中,當滿足某種條件時 ,就會執行指定的一些代碼,而在代碼組另外某種條件時,則會執行另外一些代碼。WML Script的條件語句就是if...else語句,它的一般表達相識如下:

    if(條件){

    代碼塊1

    }

    else{

    代碼塊2

    }


    這樣,當條件滿足時,就執行代碼塊1;如果條件不滿足則執行代碼塊2。代碼塊和代碼塊2中如果只有一個條語句,那么,花括號({ })就可以省略;而如果有多條語句,則必須實用花括號將代碼塊包括在其中。在if...else語句種,其中的else部分是可選的,也就是說,我們可以使用如下的表達形式:

    if(條件){

    代碼塊

    }

    這樣,當條件滿足時,就執行代碼塊,如果條件不滿足則什么也不做。

    例如,如果我們需要對一個學生的成績進行判定,如果大于等于60分,那么我們就認為該學生成績合格了,反之則認為不合格,同時一并將狀態記錄到變量status種,相應的WMLScript語句如下所示:

    if(score>=60) status="pass";

    else status="fail";

    再如,我們可以通過對天氣是否陽光普照(sunShines)的情況進行判斷,來給變量myDay賦值,并累計好天氣(goodDays)的天數。程序如下:

    if(sunShines) {
    myDay="Good";

    goodDays++;

    }else

    myDays="Oh well...";


    5.1.3 循環語句

    使用循環語句可以反復執行某個代碼塊,直到循環結束條件滿足后才停止執行。WML Script中有兩種循環語句:for語句和while語句,同時還有兩終于循環密切相關的操作語言:break語句和continue語句。

    for語句

    for語句可以創建一個帶條件的循環,它還有3個可選的條件表達式,用于控制循環。這3個條件表達式放在一個括號里,并以分號(;)間隔。for語句的一般語法形式如下:

    for(初始表達式;循環條件;遞增表達式){

    代碼塊

    }


    for語句的執行主要包括以下幾個步驟:

    (1)執行初始表達式。在一般情況下,初始表達式完成的功能是在循環中對循環計數器賦初值。所以在這種意義上,初始表達式也可以采用“var 變量聲明列表;”的形式來定義。

    (2)判斷循環條件。如果循環條件為真(ture),則執行循環體中的語句,即至步驟(3);否則,循環條件為假(false)或者invalid,就結束循環;

    (3)執行循環代碼。然后,在執行遞增表達式。一般情況下,我們在遞增表達式中對循環計數器進行處理,最后在返回步驟2執行。

    例如,下面的for語句建立了一個循環。初始表達式為定義變量index并付初值0,循環條件為index<100,遞增表達式為每循環一次index增加1。當index增加到100時候,循環結束。程序如下:


    for(var index=0;index<100;index++){

    count+=index;

    myFunc(count);

    };


    while 語句

    while語句也可常見一個循環,它的一般語法表達式如下:

    while(循環條件){

    代碼塊

    }


    while語句的執行過程包括以下幾個步驟:

    (1)判斷循環條件是否為真。如果循環條件為真,則執行循環;如果為假或為invalid,則跳出循環。

    (2)執行循環中的代碼塊,然后返回步驟(1)

    下面的程序就是使用while語句的簡單例子:

    var counter=0

    var total=0

    while(counter<3){

    counter++;

    total+=c;

    };


    其中建立的循環僅當變量counter的值小于3時執行,否則就結束循環。

    顯然,如果循環條件不能為假或為invalid,那么while循環就會無休止的反復執行下去。因此,我們在代碼塊中一定要有能夠改變循環條件的變量,否則,就很有可能會陷入死循環而不能終止程序,下面就是一個死循環的例子:

    var x=1;

    var y=0;

    while(x<=1){

    y=x+1;

    }


    這個程序中,因為變量x的值在循環中不能發生變化,所以循環條件在判斷的時候永遠為真,所以成為了死循環。因此,對于while語句我們往往使用如下所示的語法形式:

    初始表達式

    while(循環條件){

    代碼塊

    遞增表達式

    }

    這種情況下,while語句的功能和for語句的功能就一樣了,不過用while語句編寫的程序可讀性更強一些。所以我們也可以采用while語句來完成index增加到100的循環。

    程序如下:

    var index=0

    while (index<100){

    counter+=index;

    myFunc(count);

    index++;

    };


    break語句

    為了更好的解決死循環問題,WML Script項大多數編成語言一樣提供了break語句。break語句可以使程序執行跳出循環。不論是for語句還是while語句,只要在循環中使用了break語句,那么程序執行到break語句后就立即跳出當前循環,然后繼續執行下去。

    break語句的予發行時如下:

    break;

    例如,在下面的函數中我們使用了break語句,它是當index=3時跳出循環。如果不是用該語句,函數中的while循環直到index=6時才可以結束。程序如下:

    funcition testBreak(x){

    var index=0;

    while(index<6){

    if(index==3)break;

    index++

    };

    retrun index*x;

    ;


    continue語句

    continue語句的功能和break語句的功能看起來有些類似,但實際上卻不一樣。循環執行時遇到break語句通常是跳出當前循環,但循環執行到continue語句并不跳出當前循環,而是不執行循環中在continue語句后面的代碼塊,直接結束循環的本輪運行,然后馬上開始下一輪循環的運行。

    在while語句的循環中,遇到continue語句后,程序會直接判斷循環條件從而開始下一輪循環。在for語句的循環中,遇到continue語句后程序會直接執行遞增表達式,然后判斷循環條件從而開始下一輪循環。

    例如,我們想利用for循環求1到10之間偶數的和,其WML Script語句如下:

    var sum=0;

    for (var j=1;j<=10;j++){

    if(j%2!=0)

    continue;

    sun+j;

    };


    在這個例子中,在j%2!=0的情況下,也就是j為奇數的情況下,程序執行continue語句,這時,并沒有如同break語句一樣跳出循環的運行,而是不執行循環中后面的語句而直接執行遞增表達式開始下一輪循環的執行,這樣,就可以不將其數j的之類即如總和中。

    再如,我們想利用while循環求0到4之間出3以外幾個數的和,則可以使用continue語句進行控制。程序如下;

    var index=0;

    var count=0;

    while (index<5){

    index++;

    if(index==3)

    continue;

    cont+=index;

    };


    這以程序中,當index等于3時,“index==3”為真,所以執行continue語句,不再把此時index的值加大count中,而是開始下一輪的循環。


    |----------------------------------------------------------------------------------------|
                               版權聲明  版權所有 @zhyiwww
                引用請注明來源 http://www.tkk7.com/zhyiwww   
    |----------------------------------------------------------------------------------------|
    posted on 2006-07-05 15:52 zhyiwww 閱讀(438) 評論(0)  編輯  收藏 所屬分類: wml
    主站蜘蛛池模板: 免费精品久久天干天干| 亚洲福利在线视频| 久草视频免费在线| 大地资源在线资源免费观看| 亚洲AV香蕉一区区二区三区| 久久久亚洲欧洲日产国码aⅴ| 久久久久国产成人精品亚洲午夜| 男女交性永久免费视频播放| 永久在线免费观看| 大地资源在线资源免费观看| 一区二区三区免费在线视频| 亚洲天然素人无码专区| 亚洲第一成年人网站| 亚洲第一福利视频| 亚洲精品亚洲人成人网| 亚洲综合色视频在线观看| 国产gav成人免费播放视频| 成人性生活免费视频| 日韩欧毛片免费视频| 亚洲黄色免费网站| 99精品视频免费在线观看| 在线观看特色大片免费网站| 皇色在线免费视频| 香蕉免费在线视频| xxxxx做受大片视频免费| 一二三四在线观看免费中文在线观看| 亚洲第一第二第三第四第五第六| 国产成人精品日本亚洲网址| 亚洲欧洲综合在线| 亚洲国产精品成人精品小说| 久久亚洲AV成人无码软件| 久久精品国产亚洲AV高清热 | 亚洲男人的天堂网站| 亚洲综合av一区二区三区不卡| 亚洲激情视频图片| 亚洲色成人网站WWW永久四虎| 亚洲视频在线观看2018| 国产成人亚洲综合一区| 亚洲欧美日韩国产成人| 无码天堂va亚洲va在线va| 国产一区二区三区亚洲综合|