SELECT-CASE-END SELECT
From MCS Wiki AVR
(Difference between revisions)
(Created page with "SELECT-CASE-END SELECT <br/><source lang="bascomavr"> </source><br/>{{Languages}} Category:BASCOM Language Reference") |
|||
| Line 1: | Line 1: | ||
| − | + | = <span class="f_Header">Action</span> = | |
| − | + | Executes one of several statement blocks depending on the value of an expression. | |
| + | <span style="font-family: Arial;"> </span> | ||
| + | |||
| + | <span style="font-family: Arial;"> </span> | ||
| + | |||
| + | = <span class="f_Header">Syntax</span> = | ||
| + | |||
| + | <span class="f_Syntax">SELECT CASE</span> var | ||
| + | |||
| + | <span class="f_Syntax"> CASE</span> test1 : statements | ||
| + | |||
| + | [<span class="f_Syntax">CASE</span> test2 : statements ] | ||
| + | |||
| + | <span class="f_Syntax">CASE ELSE </span>: statements | ||
| + | |||
| + | <span class="f_Syntax">END SELECT</span> | ||
| + | |||
| + | <span style="font-family: Arial;"> </span> | ||
| + | |||
| + | <span style="font-family: Arial;"> </span> | ||
| + | |||
| + | = <span class="f_Header">Remarks</span> = | ||
| + | <div style="padding: 0px; margin: 0px 0px 0px 4px;"> | ||
| + | {| width="488" cellspacing="0" cellpadding="1" border="1" style="border: 2px solid rgb(0, 0, 0); border-spacing: 0px; border-collapse: collapse;" | ||
| + | |- style="vertical-align: top;" | ||
| + | | valign="top" width="15%" style="width: 69px; border: 1px solid rgb(0, 0, 0);" | | ||
| + | Var | ||
| + | |||
| + | | valign="top" width="100%" style="width: 410px; border: 1px solid rgb(0, 0, 0);" | | ||
| + | Variable to test the value of | ||
| + | |||
| + | |- style="vertical-align: top;" | ||
| + | | valign="top" width="15%" style="width: 69px; border: 1px solid rgb(0, 0, 0);" | | ||
| + | Test1 | ||
| + | |||
| + | | valign="top" width="100%" style="width: 410px; border: 1px solid rgb(0, 0, 0);" | | ||
| + | Value to test for. | ||
| + | |||
| + | |- style="vertical-align: top;" | ||
| + | | valign="top" width="15%" style="width: 69px; border: 1px solid rgb(0, 0, 0);" | | ||
| + | Test2 | ||
| + | |||
| + | | valign="top" width="100%" style="width: 410px; border: 1px solid rgb(0, 0, 0);" | | ||
| + | Value to test for. | ||
| + | |||
| + | |} | ||
| + | </div> | ||
| + | <span style="font-family: Arial;"> </span> | ||
| + | |||
| + | <span style="font-family: Arial;"> </span> | ||
| + | |||
| + | You can test for conditions to like: | ||
| + | |||
| + | <span style="font-family: Arial;"> </span> | ||
| + | |||
| + | CASE IS > 2 : | ||
| + | |||
| + | <span style="font-family: Arial;"> </span> | ||
| + | |||
| + | Another option is to test for a range : | ||
| + | |||
| + | <span style="font-family: Arial;"> </span> | ||
| + | |||
| + | CASE 2 TO 5 : | ||
| + | |||
| + | <span style="font-family: Arial;"> </span> | ||
| + | |||
| + | <span style="font-family: Arial;"> </span> | ||
| + | |||
| + | = <span class="f_Header">See also</span> = | ||
| + | |||
| + | [[IF-THEN-ELSE-END IF|IF THEN]] | ||
| + | |||
| + | <span style="font-family: Arial;"> </span> | ||
| + | |||
| + | <span style="font-family: Arial;"> </span> | ||
| + | |||
| + | <span style="font-family: Arial;"> </span> | ||
| + | |||
| + | = <span class="f_Header">Example</span> = | ||
| + | |||
| + | <br/><source lang="bascomavr"> | ||
| + | '----------------------------------------------------------------------------------------- | ||
| + | 'name : case.bas | ||
| + | 'copyright : (c) 1995-2005, MCS Electronics | ||
| + | 'purpose : demonstrates SELECT CASE statement | ||
| + | 'micro : Mega48 | ||
| + | 'suited for demo : yes | ||
| + | 'commercial addon needed : no | ||
| + | '----------------------------------------------------------------------------------------- | ||
| + | |||
| + | $regfile = "m48def.dat" ' specify the used micro | ||
| + | $crystal = 4000000 ' used crystal frequency | ||
| + | $baud = 19200 ' use baud rate | ||
| + | $hwstack = 32 ' default use 32 for the hardware stack | ||
| + | $swstack = 10 ' default use 10 for the SW stack | ||
| + | $framesize = 40 ' default use 40 for the frame space | ||
| + | |||
| + | |||
| + | Dim I As Byte 'dim variable | ||
| + | Dim S As String * 5 , Z As String * 5 | ||
| + | |||
| + | Do | ||
| + | |||
| + | Input "Enter value (0-255) " , I | ||
| + | Select Case I | ||
| + | Case 1 : Print "1" | ||
| + | Case 2 : Print "2" | ||
| + | Case 3 To 5 : Print "3-5" | ||
| + | Case Is >= 10 : Print ">= 10" | ||
| + | Case Else : Print "Not in Case statement" | ||
| + | End Select | ||
| + | Loop | ||
| + | End | ||
| + | |||
| + | 'note that a Boolean expression like > 3 must be preceded | ||
| + | 'by the IS keyword | ||
</source><br/>{{Languages}} | </source><br/>{{Languages}} | ||
[[Category:BASCOM Language Reference]] | [[Category:BASCOM Language Reference]] | ||
Latest revision as of 23:55, 11 February 2013
Contents |
Action
Executes one of several statement blocks depending on the value of an expression.
Syntax
SELECT CASE var
CASE test1 : statements
[CASE test2 : statements ]
CASE ELSE : statements
END SELECT
Remarks
|
Var |
Variable to test the value of |
|
Test1 |
Value to test for. |
|
Test2 |
Value to test for. |
You can test for conditions to like:
CASE IS > 2 :
Another option is to test for a range :
CASE 2 TO 5 :
See also
Example
'----------------------------------------------------------------------------------------- 'name : case.bas 'copyright : (c) 1995-2005, MCS Electronics 'purpose : demonstrates SELECT CASE statement 'micro : Mega48 'suited for demo : yes 'commercial addon needed : no '----------------------------------------------------------------------------------------- $regfile = "m48def.dat" ' specify the used micro $crystal = 4000000 ' used crystal frequency $baud = 19200 ' use baud rate $hwstack = 32 ' default use 32 for the hardware stack $swstack = 10 ' default use 10 for the SW stack $framesize = 40 ' default use 40 for the frame space Dim I As Byte 'dim variable Dim S As String * 5 , Z As String * 5 Do Input "Enter value (0-255) " , I Select Case I Case 1 : Print "1" Case 2 : Print "2" Case 3 To 5 : Print "3-5" Case Is >= 10 : Print ">= 10" Case Else : Print "Not in Case statement" End Select Loop End 'note that a Boolean expression like > 3 must be preceded 'by the IS keyword
| Languages | English • Deutsch |
|---|