add information and minor restructuring

This commit is contained in:
flaviut 2014-05-29 17:46:44 -04:00
commit 7715adfebc
5 changed files with 9 additions and 7 deletions

48
src/case.md Normal file
View file

@ -0,0 +1,48 @@
# Case Statements
Nimrod also supports case statements, which are like switches in other languages. There are several things to note here:
* You can use strings in the switch statement
* Sets and ranges of ordinal types are also usable
* case statements, like most things, are actually expressions
* It is required that every possible case be covered
``` Nimrod
case "charlie"
of "alfa":
echo "A"
of "bravo":
echo "B"
of "charlie":
echo "C"
else:
echo "Unrecognized letter"
case 'h':
of 'a', 'e', 'i', 'o', 'u':
echo "Vowel"
of '\127'..'\255':
echo "Maybe, but I only know English"
else:
echo "Consonant"
proc positiveOrNegative(num: int): string =
result = case num
of low(int)..-1:
"negative"
of 0:
"zero"
of 1..high(int):
"positive"
else:
"impossible"
echo positiveOrNegative(-1)
```
```
$ nimrod c -r ./case_stmts.nim
C
Consonant
negative
```