老爸這幾天狀況不穩
煩惱他的事情結果程式一點進展都沒
現在比較穩定了 趕快補進度
上一回題目的解答
Q:為什麼都會先空一格
A:因為這個FOR迴圈一開始進入的時候會先遇到
所以開頭就先換行一次了
可以改成結尾換行 就不會先空一行
原理
假如輸入3 外圈FOR就會跑三圈
三圈的值分別是 1 2 3
第一圈的時候遇上內圈FOR
因為i是1 所以內圈for只跑一圈 印一個星號
第二圈內層for的i是2 所以印兩個星號
根據外層的值連動內層 每次for的情況都不一樣
如果看懂了就做另一個版本
輸入3
輸出
*
**
***
以此類推 前面是空格
空格的數量也是透過for去變化
-----------------------------------------------------------
以下解答
有上網去google了一陣子才完成這個作業 我的理解力啊
如果直接用 ' ' 當空格用的話 不管生成幾個空格 網頁都只會給你一個空格
(卡這裡很久的87)
所以一改用 ' ' ˋ這個代表空格
Q: 進a圈的時候跑了4次生成了4次空格嗎
A: 沒錯 第一圈跑了四次
Q: 為什麼a那圈會跑四次 i 和 b不會一直跑
A: 程式語言是循序下來一行一行執行
跑到a的那圈for 沒跑完之前不會出來
以後還有多執行緒的概念 不然只能一條線處裡太慢了
現在要看懂單個執行緒 他的程式執行路線是怎麼走
基本舊三種 循序 迴圈 選擇
循序就是依序下來 但有些情況不一樣
像是變數函數宣告 就算宣告在下面 上面也可以用
再來輸入一串字 然後輸出相反過來的字
輸入 1234
輸出 4321
利用字串就是一種陣列的特性
還有要用for迴圈
假設一個字串 s = '123'
s[0] 會得到1
s[1] 會得到2
s.length 會得到3 這是字串長度的意思
用FOR迴圈提取每一個字 然後反過來接起來
--------------------------------------------------------------------------
以下解答
接下來做
把這個字串相反的功能寫成函數
函數就是 你給他一些參數 他處理後給你結果
例如有個函數 X+Y
你給他X = 1 Y = 2
結果就是 3
寫法
function add(x,y){
retuen x+y;
}
add是函數名稱 跟變數名稱一樣看你想取啥
function 意思是你要宣告一個函數
add 後面的(x , y) 意思是你要傳入兩個參數
第一個參數傳入後 宣告為x 第二個宣告為y 在函數內使用
如果你想做一個函數 可是他不用參數
那就是 function add(){
}
空括號
然後函數可以有回傳值 也可以沒有回傳值
如果沒有回傳值 就不用return
有回傳值 就是讓這個函數的所有路線跑完之前一定義有一個retuen回傳值;
說 所有路線 是因為可能有if就分成兩個路線
可是不能一個路線有回傳 一個沒有
有回傳的函數就要一定有一個回傳值
剛剛宣告好一個函數
function add(x , y){
return x+y;
}
注意函數宣告完畢 最後的大括號後面是不用分號 ;
這個函數會把傳入的兩個參數作為x跟y 然後回傳相加的值
呼叫這個函數的方法
就是在你要呼叫的地方 x = add(1, 2);
因為他有回傳值 所以要拿一個變數去裝他的回傳值
然後我傳入兩個參數 1跟2
x = add(1, 2); 這邊x就會得到 3
如果是沒有傳入參數的函數
那呼叫的時候就是 x = add();
也要括號 括號就代表函數
如果是沒有回傳值的函數 就不用拿變數去裝他了
呼叫他的時候就直接 add(1, 2);
函數宣告通常先在最外面 後面還會有 類別 物件導向
那就會宣告物件函數 只有那個物件可以使用的函數
如果宣告在最外面 那就是全城函數 大家都可以用
宣告在上下沒差 有宣告就可以隨時呼叫 沒有先後問題
再來做一個把一串數字相反的函數
傳入一串數字 回傳相反的文字
---------------------------------------------------------------------
以下解答
阿桃:是這樣寫沒錯 不過function 最好是移動到onclick外面
然後括號 縮排要對應好
function LTD{
123
}
大括號內的東西都要縮排一格 TAB 這樣比較整齊
像是那個for的結尾} 乍看以為是function LTD的
更改後
在別的地方定義好函數 (範例為LTD)
就可以呼叫來用 (上圖的 LTD(num) )