https://wiki.beyondunreal.com/w/index.php?action=history&feed=atom
If statement - Revision history
2017-11-18T02:15:47Z
Revision history for this page on the wiki
MediaWiki 1.25.1
https://wiki.beyondunreal.com/If_statement?diff=34013&oldid=prev
Wormbo: added related links to switch and conditional operator
2009-02-09T07:05:21Z
<p>added related links to switch and conditional operator</p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 07:05, 9 February 2009</td>
</tr><tr><td colspan="2" class="diff-lineno" id="L67" >Line 67:</td>
<td colspan="2" class="diff-lineno">Line 67:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>   }</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>   }</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>} else {</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>} else {</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>   <del class="diffchange diffchange-inline">doSomethngElse</del>();</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>   <ins class="diffchange diffchange-inline">doSomethingElse</ins>();</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>}</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>}</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div></uscript></div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div></uscript></div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="L76" >Line 76:</td>
<td colspan="2" class="diff-lineno">Line 76:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>     doSomething();</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>     doSomething();</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>   } else {</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>   } else {</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>     <del class="diffchange diffchange-inline">doSomethngElse</del>();</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>     <ins class="diffchange diffchange-inline">doSomethingElse</ins>();</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>   }</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>   }</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>}</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>}</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="L84" >Line 84:</td>
<td colspan="2" class="diff-lineno">Line 84:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>This problem is called "dangling else" and the compiler solves it by applying a simple rule: ''An else statement always belongs to the inner-most preceeding if statement.'' In our case, this is the "if (b) statement".</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>This problem is called "dangling else" and the compiler solves it by applying a simple rule: ''An else statement always belongs to the inner-most preceeding if statement.'' In our case, this is the "if (b) statement".</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">==Related concepts==</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">* [[Conditional operator]] (for conditionally evaluating expressions)</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">* [[Switch statement]] (for executing different code branches based on the value of an expression)</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>{{navbox unrealscript}}</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>{{navbox unrealscript}}</div></td></tr>
</table>
Wormbo
https://wiki.beyondunreal.com/If_statement?diff=33132&oldid=prev
Wormbo: New page: The '''if''' statement provides a simple way to branch code execution paths based on a condition. When the condition is met, a certain piece of code can be executed and optionally, when th...
2008-10-17T07:20:31Z
<p>New page: The '''if''' statement provides a simple way to branch code execution paths based on a condition. When the condition is met, a certain piece of code can be executed and optionally, when th...</p>
<p><b>New page</b></p><div>The '''if''' statement provides a simple way to branch code execution paths based on a condition. When the condition is met, a certain piece of code can be executed and optionally, when the condition is not met, another piece of code can be executed.<br />
<br />
==Syntax==<br />
The simple '''if''' statement looks as follows:<br />
'''if ('''''condition''''')'''<br />
''statement''''';'''<br />
The ''condition'' is a [[boolean]] expression and if it evaluates to ''True'' at runtime, the ''statement'' is executed.<br />
<br />
If more than one code statement should be executed, simply enclose them all in curly braces:<br />
'''if ('''''condition''''') {'''<br />
...<br />
'''}'''<br />
<br />
Additionally, when the ''condition'' evaluates to ''False'', a different piece of code can be executed:<br />
'''if ('''''condition''''')'''<br />
''statement''''';'''<br />
'''else'''<br />
''statement''''';'''<br />
Of course, this also works with a block of code:<br />
'''if ('''''condition''''') {'''<br />
...<br />
'''} else {'''<br />
...<br />
'''}'''<br />
You can even combine the block and simple forms:<br />
'''if ('''''condition''''') {'''<br />
...<br />
'''}'''<br />
'''else'''<br />
''statement''''';'''<br />
...or:<br />
'''if ('''''condition''''')'''<br />
''statement''''';<br />
'''else {'''<br />
...<br />
'''}'''<br />
To prevent confusion, it may be a good idea to always use curly braces, even if you only put a single statement after the '''if''' or '''else''' part.<br />
<br />
=="ElseIf" statement==<br />
The '''if''' statement in [[UnrealScript]] does not support an "elseif" clause, like e.g. BASIC dialects do. Instead, you can simply add another '''if''' clause in the '''else''' part:<br />
'''if ('''''condition1''''') {'''<br />
...<br />
'''} else if ('''''condition2''''') {'''<br />
...<br />
'''} else if ('''''condition3''''') {'''<br />
...<br />
'''} else {'''<br />
...<br />
'''}'''<br />
<br />
==The "dangling else" problem==<br />
Consider the following example code:<br />
<uscript><br />
if (a)<br />
if (b)<br />
doSomething();<br />
else<br />
doSomethingElse();<br />
</uscript><br />
This looks highly ambigious. Which '''if''' does the '''else''' belong to? Indenting would suggest it belongs to the first '''if''' statement. However, the compiler ignores all indenting, so the '''else''' may as well belong to the second '''if''' statement.<br />
<br />
Using curly braces, the above code may look as follows:<br />
<uscript><br />
if (a) {<br />
if (b) {<br />
doSomething();<br />
}<br />
} else {<br />
doSomethngElse();<br />
}<br />
</uscript><br />
Or like this:<br />
<uscript><br />
if (a) {<br />
if (b) {<br />
doSomething();<br />
} else {<br />
doSomethngElse();<br />
}<br />
}<br />
</uscript><br />
Obviously these two implementations are not the same, but which one would be used if you left out the curly braces?<br />
<br />
This problem is called "dangling else" and the compiler solves it by applying a simple rule: ''An else statement always belongs to the inner-most preceeding if statement.'' In our case, this is the "if (b) statement".<br />
<br />
<br />
{{navbox unrealscript}}</div>
Wormbo