非法的表达式开始_轮回、开始还是结束?
上節課說到,要打印0-9這十個數字,除了一個一個的 document.write 還有什么辦法?
下面介紹一個for語法
for (var 變量 = 初始值; 結束判斷表達式; 變量遞增/遞減) { 循環體,用于處理變量;}我們來實操一下
for (var c=0;c<=9;c=c+1) { document.write(c);}效果如下:
我們來解釋一下:
for (c=0; c<=9; c=c+1) 意思就是
開始循環(讓變量c從0開始; 一直到c<=9截止; 每循環一次c就加1)
電腦看到 for 就知道接下來是一個循環語句
然后 c=0 ,就是定義一個變量c,其初始值是0
然后判斷一下 c 是否 小于等于 9,如果是,就進入循環體,執行相關操作,否則就退出循環,這里 0<=9,所以需要進去執行 document.write(0)
接下來碰到 } 符號表示一輪循環結果,就執行 c= c+1,這個表達式,如果你用數學的思路看,是肯定有問題的, c 怎么可能等于 c + 1 呢?不過你別忘了,這不是數學,符號(=),它的意思也不是“等于”,而是“賦值”,賦值符號左邊是變量,右邊是值還記得不? 變量 = 值;
那么 c = c + 1 是啥意思呢? 就是把變量 c 中的值拿出來,加個1,再塞回去 c 里面。
我們可以拿現實生活就舉例,就相當于,你在一張紙上寫了一橫,把它扔到了一號寶箱,這個時候寶箱里的是不是一橫?然后你把紙從寶箱拿出來,又畫了一橫,再扔回去寶箱里頭,它是不是變成兩橫了?
所以在這個程序里,第一次循環執行完后, c = c + 1 相當于 c = 0 + 1 ,所以 c = 1 了,它再去和 c<=9 比較,發現 1 <= 9 仍然滿足條件,再進去循環體執行
document.write(1)。
整個執行過程,我們一寫一下:
//循環開始var c = 0 ;if (c <= 9) { document.write(c); //這個時候相當于document.write(0) } else {}//第一輪循環結束c = c + 1 ; // c = 0 + 1 => c = 1if (c <= 9) {}//c:至此整個 for 循環結束。
之前講 if 的時候就應該提到的一個數據類型,現在也應該講一下了。
就是那個“條件判斷表達式”,它的結果是啥呢?是一個布爾(bool)類型,它只有兩個值(true, false)
八卦里你可以用(陰、陽)來表達,成語你可以用“非此即彼”來表示,如果要好理解,你可以“對、錯”來理解,主要就是用于“判斷類表達式”,大家可以執行下面代碼加深理解:
document.write((2>1)); //對:truedocument.write(""); //換行document.write((1>2)); //錯:falsedocument.write("
"); //換行document.write((2==2)); //對:truedocument.write("
"); //換行document.write((3>=2)); //對:truedocument.write("
"); //換行document.write((3<=2)); //錯:falsedocument.write("
"); //換行document.write((0==3)); //錯:false
結果如下:
另外 bool 類型,還有幾個專用的操作符: &&(并且/and), ||(或者/or), !(非/not),^(異或/xor)
咱們用到再說。
還有就是上頭的 c = c + 1,寫起來有點煩,程序員的時間很寶貴,懶是宇宙第一生產力,所以發明者說:要不咱們把 c = c + 1 寫成 c++ 吧?就這么愉快的決定了。
所以 c++ 只能表達 c= c+1 哈,如果你想一次性+2,那你只能 c= c+2 了,不能寫成 “c++++” 的哈, c 每次加1 還有種寫法是“++c”兩者有啥區別呢,我們可以寫幾個代碼試一下
var x = 1;x++; //x = x + 1; x = 1 + 1; x = 2document.write(x); //document.write(2)document.write(""); //換行++x; //x = x + 1; x = 2 + 1; x = 3document.write(x); //document.write(3)document.write("
"); //換行document.write(x++); //相當于 x = x + 1; document.write(x); //執行完這句話后 x = 2,屏幕也顯示2document.write("
"); //換行 document.write(++x); //相當于 x = x + 1; document.write(x); //因為前一次 x++的操作 x變成2了,所以這個時候就 //相當于 x = 2 + 1 = 3; document.write(3);//從上面的代碼來看, x++ 和 ++x 是一樣的效果//下面來說它倆的區別了
咱們復制到瀏覽器,看看效果。
所以剛才的 for 循環,我們可以簡寫為:
for (var c=0;c<=9; c++) { document.write(c);}另外 for 循環并沒有規定說,每次只能加1哈,比如說,我要打印9以內的雙數應該怎么做呢?
for (var c=0;c<=9; c=c+2) { document.write(c);}這樣子就能打印出來:0,2,4,6,8(全是雙數)了
除了 for 循環,我們還有for in, while 和 do while 循環
for in 一般用于數組或對象:
變量是一個一個的,數組(也是變量,只不過比較特殊)就是一批一批
定義變量的語法是: 變量 = 值;
而定義數組的語法是: 變量 = [ 值1, 值2, 值3, 值4, ……]; 你想放多少放多少
//打印 0,1,2,3,4,5,6,7,8,9for (var c=0;c<10;c++) { document.write(c);}//點名var persons = ["張三","李四","王麻子"];for (var name inpersons ) { document.write(name); document.write("");}
for in 結果如下:
while 和 do while 用于不知道要循環多少次
while 是先判斷,再執行,循環次數最少為 0 次
而 do while 是先執行再判斷,循環次數最少為 1 次
//打招呼程序,接受用戶輸入姓名,并打印出 某某你好//如果用戶輸入的是 exit ,就退出循環while (text!="exit") {var text = prompt("請輸入您的姓名"); document.write(text); document.write("你好") document.write(""); //換行 text = prompt("請輸入您的姓名");}//如果一開始
結果如下:
//較驗用戶輸入姓名,如果用戶輸入為空//就一直讓他輸入,直到不為空為止var text = "";do { text = prompt("請輸入姓名:");} while(text==null || text == "") //用戶沒有輸入內容,卻點了“確定”,text=""//用戶點了"取消", text=null alert(text + "你好"); //alert函數可以彈出一個對話框今天就到這兒吧,最后送上九九乘法表的程序(直接輸代碼,好像會丟,可能有非法字符?),大家手打一遍印象更深。
結果如下:
總結
以上是生活随笔為你收集整理的非法的表达式开始_轮回、开始还是结束?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快讯|联影医疗与飞书达成合作 将实现一站
- 下一篇: 巴菲特去意已决?伯克希尔·哈撒韦再度减持