2017-09-23 52 views
0

編寫JavaScript以讀取用戶工作的小時數。然後編寫JavaScript來計算用戶在前40小時工作時以每小時12美元的薪水支付多少錢,並且在40以上的所有小時中支付18美元/小時。然後使用console.log打印輸入的小時數和總金額。計算收入(介紹JavaScript風格)

這就是我必須編寫的代碼。

我可以從0-40的第一部分沒有問題。但我無法弄清楚如何擁有和if/else語句以$ 12/h計算前40,剩下的$ 18/h。

我的代碼現在看起來像

let hours = Number(prompt("Numbers of hours worked")) 
console.log("# of hours worked is " +hours) 
let regularHours = (hours >=40 
if (hours <= 40) { 
    console.log("In " +hours+ " you made $" +hours *12) 
} else { 
    console.log("In " +hours+ "you made $" +) 

我可以定義一個變量要像

let regularHours = hours <=40 *12 

let overtimeHours = hours >40 *18 

我試過了,但它不是做得比較工作。

我是否過分複雜呢?

+1

if(hours> 40)then set regularHours = 40 and overtimeHouse = hours-40。然後做你的收入增長。 – Ben

+0

對,是的,這將工作。而不是試圖在變量內部進行乘法運算。謝謝 !! –

回答

0

簡單地計算出他們有多少加班時間,然後從你的基本速度小時減去它:

let hours   = prompt('Enter your hours:'), 
 
    overtimeHours = Math.max(0, (hours - 40)), 
 
    baseRateHours = hours - overtimeHours; 
 

 
let earnings = (baseRateHours * 12) + (overtimeHours * 18); 
 

 
console.log(earnings);

注意,我們使用Math.max(),以防止負面加班時間從減少以基本費率工作的小時數。

+0

如果我只工作32小時,這會產生不正確的結果。 – Ben

+1

@Ben謝謝,使用'Math.max()'修復。 – BenM

+0

啊,這更有意義。比我做得更簡單。非常感謝! –

0
let hours   = prompt('Enter your hours'); 
let baseRateHours=40; 
if(hours >baseRateHours){ 
let overTime= hours - baseRateHours; 
let earnings= (baseRateHours*12) + (overTime*18); 
} 
else { 
let earnings = hours*12; 
} 
console.log(earnings) 
+0

啊!我之前正在研究這一點,所以你可以在if @Osama中放置一個let語句? –

+0

爲什麼不能? let用於定義變量 – Osama

+0

@DonaldL你可以像在聲明中那樣定義你的變量,但它不一定是最佳實踐。上面的代碼會引發錯誤,因爲收入未在「其他」語句中定義。你最好在if/else塊之前定義它,然後分配已經定義的變量。 – Ben