0
Why can't this work for me in Kotlin
fun main(args: Array<String>) { var hours = readLine()!!.toInt() val total: Double=0.0 println($hours) val total: Double =when{ hours<=5->1*hours hours>5&&hours<24->0.5*hours hours==24->15 hours>24->15+0.5*(hours-24) else->0 } println(total) }
2 odpowiedzi
+ 3
you don't need to declare total twice.
using val total means it's not going to be reassigned again.
change input to Double to avoid mixing Int and Double.
fun main(args: Array<String>) {
var hours = readLine()!!.toDouble()
//val total: Double=0.0
println(hours) //remove $
var total: Double = when{
hours<=5->1*hours
hours>5&&hours<24->0.5*hours
hours==24->15.0 //add .0
hours>24->15+0.5*(hours-24)
else->0.0 //add .0
}
println(total)
}
+ 2
Solomon Obonyo
1 - you have declared total twice
2 - if you assign switch case as double then atleast 1 value should be of type double
3 - condition were wrong
if hours is more than 48 then rent would be 15 per 24 hour and 0.5 each hours so condition should be like this:
15 * (hours / 24) + 0.5 * (hours % 24)
Here is the solution
fun main(args: Array<String>) {
var hours = readLine()!!.toInt()
// val total: Double=0.0
// println($hours)
val total: Double = when {
hours <= 5 -> 1.0 * hours
hours > 5 && hours < 24 -> 5 + 0.5 * (hours - 5)
hours == 24 -> 15.0
hours > 24 -> 15 * (hours / 24) + 0.5 * (hours % 24)
else -> 0.0
}
println(total)
}