aboutsummaryrefslogtreecommitdiffstats
path: root/source/arduino/switchcase.rst
diff options
context:
space:
mode:
Diffstat (limited to 'source/arduino/switchcase.rst')
-rw-r--r--source/arduino/switchcase.rst89
1 files changed, 45 insertions, 44 deletions
diff --git a/source/arduino/switchcase.rst b/source/arduino/switchcase.rst
index 28791eb..1634de1 100644
--- a/source/arduino/switchcase.rst
+++ b/source/arduino/switchcase.rst
@@ -3,71 +3,72 @@
switch / case statements
========================
-Like **if** statements, **switch...case** controls the flow of
-programs by allowing programmers to specify different code that
-should be executed in various conditions. In particular, a switch
-statement compares the value of a variable to the values specified
-in case statements. When a case statement is found whose value
-matches that of the variable, the code in that case statement is
-run.
-
-
-
-The **break** keyword exits the switch statement, and is typically
-used at the end of each case. Without a break statement, the switch
-statement will continue executing the following expressions
-("falling-through") until a break, or the end of the switch
-statement is reached.
-
-
-
-Example
-~~~~~~~
-
-::
-
- switch (var) {
- case 1:
- //do something when var equals 1
- break;
- case 2:
- //do something when var equals 2
- break;
- default:
- // if nothing else matches, do the default
- // default is optional
- }
-
-
+Like :ref:`if/else <arduino-else>` blocks, A ``switch`` statement
+controls program flow by allowing you to specify different code that
+should be executed under various cases.
Syntax
-~~~~~~
+------
::
switch (var) {
- case label:
+ case val1:
// statements
break;
- case label:
+ case val2:
// statements
break;
- default:
+ ...
+ default:
// statements
}
+Where ``var`` is a variable whose value to investigate, and the
+``val1``, ``val2`` after each ``case`` are constant values that
+``var`` might be.
+Description
+-----------
-Parameters
-~~~~~~~~~~
+A ``switch`` statement compares the value of a variable to the values
+specified in ``case`` statements. When a ``case`` statement is found
+whose value matches that of the variable, the code in that case
+statement is run.
-var: the variable whose value to compare to the various cases
+The ``break`` keyword exits the switch statement, and is typically
+used at the end of each ``case``. Without a ``break``, the ``switch``
+statement will continue executing the following ``case`` expressions
+("falling-through") until a ``break`` (or the end of the switch
+statement) is reached.
+Writing ``default:`` instead of a ``case`` statement allows you to
+specify what to do if none of the ``case`` statements matches. Having
+a ``default:`` is optional (you can leave it out), but if you have
+one, it must appear after all of the ``case`` statements, as shown
+above.
+``switch`` statements are often used with an ``enum`` value as the
+variable to compare. In this case, you can write down all of the
+values the ``enum`` takes as ``case`` statements, and be sure you've
+covered all the possibilities.
-label: a value to compare the variable to
+Example
+-------
+::
+ switch (var) {
+ case 1:
+ //do something when var equals 1
+ break;
+ case 2:
+ //do something when var equals 2
+ break;
+ default:
+ // if nothing else matches, do the default
+ // default is optional
+ }
See also:
---------