Detect division by zero: Difference between revisions

Content added Content deleted
Line 2,533: Line 2,533:


fn main() {
fn main() {
divide(0, 0)
divide(15, 0)
divide(15, 0)
divide(15, 3)
divide(15, 3)
Line 2,539: Line 2,540:
fn divide(x f64, y f64) {
fn divide(x f64, y f64) {
result := x/y
result := x/y
if result.str().contains('inf') == false {
if result.str().contains_any_substr(['inf','nan']) == true {
println(result)
println(Can\'t divide by zero!')
return
return
}
}
println('Can\'t divide by zero!')
println(result)
}
}
</syntaxhighlight>
</syntaxhighlight>
Line 2,551: Line 2,552:
<syntaxhighlight lang="Go">
<syntaxhighlight lang="Go">
fn main() {
fn main() {
divide(15, 0)
divide(15, 3)
divide(15, 3)
divide(10, 0)
divide(0, 0)
}
}


fn divide(x f64, y f64) {
pub fn divide(x f64, y f64) {
error_handler := fn [x, y] () !f64 {
succeed := divide_error_handler(x, y) or {
result := x/y
if result.str().contains('inf') == false {return result}
return error('Can\'t divide by zero!')
}
succeed := error_handler() or {
println(err)
println(err)
return
return
}
}
println(succeed)
println(succeed)
}

fn divide_error_handler(x f64, y f64) !f64 {
result := x/y
if result.str().contains_any_substr(['inf','nan']) == true {
return error('Can\'t divide by zero!')
}
return result
}
}
</syntaxhighlight>
</syntaxhighlight>
Line 2,571: Line 2,576:
{{out}}
{{out}}
<pre>
<pre>
Can't divide by zero!
Can't divide by zero!
Can't divide by zero!
5.0
5.0