Hi, I'm learning nim and decided to translate some FizzBuzz code from Basic that uses Case(switch) vs If Else If.
Here's the Basic syntax:
i = 1 to 100
select case
case i mod 15 = 0
print "FizzBuzz"
case i mod 3 = 0
print "Fizz"
case i mod 5 = 0
print "Buzz"
case else
print i
end select
next i
My attempt at replicating the Basic code in nim:
i in 1 .. 100:
case i
of i mod 15 == 0:
echo "FizzBuzz"
of i mod 3 == 0:
echo "Fizz"
of i mod 5 == 0:
echo "Buzz"
else:
echo i
I'm getting the error: "Error: cannot evaluate at compile time: i ". I realize some languages do not support Case(switch) statements with the use of some conditional expressions like the modulo operator and was wondering if that's the case (no pun intended) with the nim language. Thanks in advance. :) The of expression needs to be calculable at compile time.
You could use if/elif, or:
for i in 1 .. 100:
case i mod 15:
of 0:
echo "FizzBuzz"
of 3,6,9,12:
echo "Fizz"
of 5,10:
echo "Buzz"
else:
echo i
You want if/elif/else.
for i in 1 .. 100:
if i mod 15 == 0:
echo "FizzBuzz"
elif i mod 3 == 0:
echo "Fizz"
elif i mod 5 == 0:
echo "Buzz"
else:
echo i
There are many basic Nim tutorials online. The Nim website lists some of them.