summaryrefslogtreecommitdiff
path: root/reference/C/SYNTAX/if.html
diff options
context:
space:
mode:
authorTobias Klauser <tklauser@distanz.ch>2008-01-27 11:37:44 +0100
committerTobias Klauser <tklauser@xenon.tklauser.home>2008-01-27 11:37:44 +0100
commit7e0f021a9aec35fd8e6725e87e3313b101d26f5e (patch)
treeb1cacc4b24393f517aeb4610e9e1021f954307a8 /reference/C/SYNTAX/if.html
Initial import (2.0.2-6)2.0.2-6
Diffstat (limited to 'reference/C/SYNTAX/if.html')
-rw-r--r--reference/C/SYNTAX/if.html133
1 files changed, 133 insertions, 0 deletions
diff --git a/reference/C/SYNTAX/if.html b/reference/C/SYNTAX/if.html
new file mode 100644
index 0000000..8df9bb6
--- /dev/null
+++ b/reference/C/SYNTAX/if.html
@@ -0,0 +1,133 @@
+<title>if-else keywords.</title>
+
+<head>
+<script language="JavaScript">
+</script>
+</head>
+
+<body bgcolor="#ffffcc">
+<hr>
+<center>
+<h1>The 'if' and 'else' keywords</h1>
+</center>
+<hr>
+<p>
+
+The if-else statement is a two-way decision statement. It is written as
+
+<pre>
+ if ( expression ) statement1;
+ [else statement2;]
+</pre>
+
+The else portion is optional. If the expression evaluates to
+<a href="../CONCEPT/true_false.html">true</a>
+(anything other than 0) then statement1 is executed. If there is an <b>else</b>
+statement and the expression evaluates to
+<a href="../CONCEPT/true_false.html">false</a>
+statement2 is executed.
+
+For example
+
+<pre>
+(1)
+ int NumberOfUsers;
+ .
+ .
+ if( NumberOfUsers == 25 )
+ { /* No else part */
+ printf( "There are already enough users. Try later.\n" );
+ return ERROR;
+ }
+ .
+ .
+
+
+(2) if( a >= b ) larger = a; /* else part is present */
+ else larger = b;
+</pre>
+
+Consider this code fragment:
+<pre>
+ if( p == 1 )
+ if( q == 2 ) r = p * 2 + q;
+ else r = q * 2 + p;
+</pre>
+Because the <b>else</b> part is optional, there is an ambiguity when an <b>else</b> is
+omitted from a nested if sequence. In 'C', this is resolved by associating
+the <b>else</b> with the closest previous if that does not have an <b>else</b>.
+Therefore, in the above example, the <b>else</b> part belongs to the if(q==2)
+statement.
+
+The code can be made more readable by explicitly putting parentheses in
+the expression, like this
+
+<pre>
+ if( p == 1 )
+ {
+ if( q == 2 ) r = p * 2 + q;
+ }
+ else r = q * 2 + p;
+
+ OR
+
+ if( p == 1 )
+ {
+ if( q == 2 ) r = p * 2 + q;
+ else r = q * 2 + p;
+ }
+</pre>
+
+Because the statement in the <b>else</b> part can also be an if statement, a
+construct such as shown below is possible in 'C' to create a multiple
+choice construct.
+
+<pre>
+ if( expression1 )
+ statement1;
+ else if( expression2 )
+ statement2;
+ else if( expression3 )
+ statement3;
+ .
+ .
+ else
+ statementN;
+</pre>
+
+<hr>
+<h2>Example:</h2>
+<img src="../../GRAPHICS/computer.gif" align=center>
+<a href="../EXAMPLES/if.c"> Basic <b>if</b> example.</a>
+<br clear=left>
+<hr>
+<h2>See also:</h2>
+<ul>
+<li><a href="switch.html">switch</a> keyword.
+</ul>
+<p>
+
+<hr>
+<p>
+<center>
+<table border=2 width="80%" bgcolor="ivory">
+<tr align=center>
+<td width="25%">
+<a href="../cref.html"> Top</a>
+</td><td width="25%">
+<a href="../master_index.html"> Master Index</a>
+</td><td width="25%">
+<a href="keywords.html"> Keywords</a>
+</td><td width="25%">
+<a href="../FUNCTIONS/funcref.htm"> Functions</a>
+</td>
+</tr>
+</table>
+</center>
+<p>
+<hr>
+<address>Martin Leslie
+</address><p>
+
+ </body>
+</html>