Detect division by zero: Difference between revisions
Content added Content deleted
Line 2,533: | Line 2,533: | ||
fn main() { |
fn main() { |
||
⚫ | |||
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(). |
if result.str().contains_any_substr(['inf','nan']) == true { |
||
println( |
println(Can\'t divide by zero!') |
||
return |
return |
||
} |
} |
||
println( |
println(result) |
||
} |
} |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
Line 2,551: | Line 2,552: | ||
<syntaxhighlight lang="Go"> |
<syntaxhighlight lang="Go"> |
||
fn main() { |
fn main() { |
||
⚫ | |||
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) { |
||
succeed := divide_error_handler(x, y) or { |
|||
⚫ | |||
if result.str().contains('inf') == false {return result} |
|||
⚫ | |||
⚫ | |||
succeed := error_handler() or { |
|||
println(err) |
println(err) |
||
return |
return |
||
} |
} |
||
println(succeed) |
println(succeed) |
||
} |
|||
fn divide_error_handler(x f64, y f64) !f64 { |
|||
⚫ | |||
if result.str().contains_any_substr(['inf','nan']) == true { |
|||
⚫ | |||
⚫ | |||
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 |