2017-09-23 15 views
0

JavaScriptを使用して、作業時間を表示します。その後、最初の40時間は12ドル/時間、40時間以上働いた時間は18ドル/時間を支払った場合にユーザーが出した金額を計算するJavaScriptを書いてください。次に、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 regularHours = 40およびovertimeHouse = hours-40を設定します。それから、あなたの収入を倍増させてください。 – Ben

+0

それはうまくいくでしょう。変数の中で私の乗算をしようとするよりもむしろ。ありがとう!! –

答えて

0

だけで、彼らが働いているどのように多くの残業時間のワークアウトして、あなたの基本速度時間からそれを引く:我々は減少から負の残業時間を防ぐためにMath.max()を使用

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

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

 
console.log(earnings);

お知らせ基本料金で働いた時間数。

+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

なぜですか?変数を定義するためです。 – Osama

+0

@DonaldL変数を内部のステートメントのように定義できますが、必ずしもベストプラクティスではありません。上記のコードは、収益が 'else'ステートメントで定義されていないため、エラーをスローします。 if/elseブロックの前に定義しておき、既に定義されている変数を割り当てる方が良いでしょう。 – Ben

関連する問題