enter3017sky / mentor-program-2nd-blog

MTR02 學習紀錄
1 stars 2 forks source link

[筆記][JS101] Lv1 練習題 #9

Open enter3017sky opened 6 years ago

enter3017sky commented 6 years ago

JS101_lv1_練習一:印出一到九

請你分別用 for loop 以及 while 迴圈,印出 1~9。201809062358

for loop 解法

function forloop () {
// 初始值 i = 1 ; 終止條件 i <=9 ; 每圈要做的事情 i++
  for (var i = 1; i <= 9; i++) {
    console.log(i)  // 打印 i
  }
}
forloop()  // 呼叫這個 function

while loop 解法

function whileloop () {
  var i = 1  // 初始值
  while (i <= 9) {  // 終止條件
    console.log(i)  //印出 i
    i++  // i 每一圈要做的事情
  }
}
whileloop()

do while loop 解法

function dowhile () {
  var i = 1 //初始值
  do { //做什麼
    console.log(i) //打印 i
    i++             // i 每圈要做的事情
  } while (i <= 9)  //終止條件
}
dowhile()
enter3017sky commented 6 years ago

js101_lv1_練習二:寫一個能夠印出 1~n 的函式

201809070002

print(1) 預期輸出:
1

print(3) 預期輸出:
1
2
3

for loop 解法

// answer
function oneToN (n) {
  for (var i = 1; i <= n; i++) {
    console.log(i)
  }
}
oneToN(9)
oneToN(3)
oneToN(1)

while loop 解法

function oneToN2(n){
  var i = 1
  while(i <= n){
    console.log(i)
    i++
  }
}
oneToN2(9)
oneToN2(3)
enter3017sky commented 6 years ago

js101_lv1_練習三:寫一個能夠印出 n 個 * 的函式。201809070117

寫一個函式 star,接收一個參數 n,並印出 n 個 *(禁止使用內建函式 repeat)
star(1) 預期輸出:
*
star(5) 預期輸出:
*****
star(10) 預期輸出:
**********

用中文來表達


output = ''
產生一個星星
output 加上一個星星
if (還沒到五個星星)
    goto line 3
}
return output

for loop 解法

function star (n) {
  var result = ''
  for (var i = 1; i <= n; i++) {
    result += '*'
  }
  console.log(result) // 印出結果
}
star(3)
star(5)
star(7)

while loop 解法

function star (n) {
  var result = ''
  var i = 0
  while (i < n) {
    result += '*'
    i++
  }
  return result  // 回傳結果
}
console.log(star(5))

變成 repeat 函式

function repeat(str, n){
    var result = ''
    for (i = 1; i <= n; i++){
        result += str //執行n次
  }
  console.log(result)
}
repeat('!', 7)
enter3017sky commented 6 years ago

js101_Lv1練習四、Lv2練習一:寫一個能回傳 n 個 * 的函式。201809070209

請寫出一個叫做 star 的 function 並且接受一個參數 n,能回傳 n 個 *。
star(1) 會回傳 *
star(5) 會回傳 *****
所以 console.log(star(5)) 的預期輸出是:
*****

// Answer

function star (n) {
  var result = ''
  for (var i = 1; i <= n; i++) {
    result += '*'
  }
  return result
}
console.log(star(3))
console.log(star(5))
console.log(star(7))
enter3017sky commented 6 years ago

js101_lv2_練習五 回傳第一個字母是否大小寫

請寫一個叫做 isUpperCase 的 functuon,並且接收一個字串,回傳這個字串的第一個字母是否為大寫。
isUpperCase("abcd") 正確回傳值:false
isUpperCase("Abcd") 正確回傳值:true
isUpperCase("ABCD") 正確回傳值:true
isUpperCase("aBCD") 正確回傳值:false

answer

function isUpperCase (str) {
  var char = str[0] // 尋找 index = 0 的字
  if (char >= 'a' && char <= 'z') return false
  if (char >= 'A' && char <= 'Z') return true
}
console.log(isUpperCase('ABCD'))
console.log(isUpperCase('abcd'))
console.log(isUpperCase('Abcd'))
console.log(isUpperCase('aBCD'))

better answer

function isUpperCase (str) {
  var char = str[0] // 尋找 index = 0 的字
  return char >= 'A' && char <= 'Z'   // 本身就是判斷true false ,可以精簡成這樣
}
console.log(isUpperCase('ABCD')) // true
console.log(isUpperCase('abcd'))  //false
console.log(isUpperCase('Abcd'))  //true
console.log(isUpperCase('aBCD')) //false