首先我們使用javascript來寫
// 引入 Node.js 內建的 readline 模組,用於從命令列讀取使用者輸入
const readline = require('readline');
// 創建 readline 介面
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// 初始化投籃次數和命中次數
let 總投籃次數 = 0;
let 命中次數 = 0;
// 提示使用者輸入投籃次數和命中次數
rl.question('請輸入總投籃次數:', (總次數) => {
rl.question('請輸入命中次數:', (成功次數) => {
// 將使用者輸入的字串轉換為數字
總投籃次數 = parseInt(總次數);
命中次數 = parseInt(成功次數);
// 檢查使用者輸入是否有效
if (isNaN(總投籃次數) || isNaN(命中次數)) {
console.log('請輸入有效的數字。');
} else if (總投籃次數 < 0 || 命中次數 < 0 || 命中次數 > 總投籃次數) {
console.log('投籃次數和命中次數必須是非負整數,且命中次數不能超過投籃次數。');
} else {
// 計算命中率
const 命中率 = (命中次數 / 總投籃次數) * 100;
console.log(`命中率為:${命中率.toFixed(2)}%`);
}
// 關閉 readline 介面
rl.close();
});
});
這個程式會提示使用者輸入總投籃次數和命中次數,然後計算並顯示命中率。程式會檢查使用者輸入的有效性,確保投籃次數和命中次數都是非負整數,且命中次數不能超過投籃次數。
1.我們首先引入了Node.js內建的readline
模組,這個模組用於處理命令列的輸入和輸出。
2. 創建一個readline
介面,設定input
為標準輸入(使用者的命令列輸入),output
為標準輸出(顯示訊息給使用者)。
3. 初始化兩個變數總投籃次數
和命中次數
,它們分別用於存儲使用者輸入的總投籃次數和命中次數。
4. 使用rl.question
函數來向使用者發出提示,要求他們輸入總投籃次數和命中次數。這兩個提示都是非同步的,所以我們使用回調函數來處理使用者的輸入。
5. 在第一個回調函數中,我們將使用者輸入的總次數
轉換為整數並存儲在總投籃次數
變數中。
6. 在第二個回調函數中,我們將使用者輸入的成功次數
轉換為整數並存儲在命中次數
變數中。
7. 接下來,我們對使用者輸入的有效性進行檢查。我們確保總投籃次數
和命中次數
都是有效的非負整數,並且命中次數
不超過總投籃次數
。
8. 如果使用者輸入有效,我們計算命中率。命中率計算公式為:(命中次數 / 總投籃次數) * 100
。我們將計算結果以百分比形式顯示,並使用toFixed
函數將小數點後的位數限制為兩位。
9. 最後,我們使用console.log
將命中率顯示給使用者。
10. 當所有操作完成後,我們使用rl.close()
來關閉readline
介面,結束程式的執行。