Shop OBEX P1 Docs P2 Docs Learn Events
How many Case can we use? — Parallax Forums

How many Case can we use?

Zap-oZap-o Posts: 452
edited 2009-04-12 16:18 in Propeller 1
How many Case statements can we use? see exampleI have not seen it written in the manual so I am asking the general public. I assume 32, but before I write my complex library I wish to know.

[b]
 Pri comp(In) : Out

Case IN
  1:
  2:
  3:
  4:
  5.....32?
[/b]

Comments

  • Mike GreenMike Green Posts: 23,101
    edited 2009-04-12 03:39
    I don't know what the limitation is, but I've used over 70 cases in some experimental versions of BoeBotBasic.
  • GiemmeGiemme Posts: 85
    edited 2009-04-12 06:07
    Hi

    I found following limits:
    1) in a PUB/PRI object there are max 63 select CASE statements
    2) in a object file there are max 254 PUB or PRI objects


    Regards

    Gianni

    Post Edited (Giemme) : 4/12/2009 6:17:48 AM GMT
  • PhilldapillPhilldapill Posts: 1,283
    edited 2009-04-12 06:11
    I could be dead wrong, but I imagine it has something to do with stack space or program space? Mike?
  • Timothy D. SwieterTimothy D. Swieter Posts: 1,613
    edited 2009-04-12 07:35
    I believe I have had programs with more than 32, but probably not much more.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Timothy D. Swieter, E.I.
    www.brilldea.com - Prop Blade, LED Painter, RGB LEDs, 3.0" LCD Composite video display, eProto for SunSPOT
    www.tdswieter.com
  • GiemmeGiemme Posts: 85
    edited 2009-04-12 10:28
    here is a past thread about that issue:

    http://forums.parallax.com/forums/default.aspx?f=25&m=289079&g=289214#m289214
    Regards

    Gianni
  • StefanL38StefanL38 Posts: 2,292
    edited 2009-04-12 10:53
    Hello Zap-o

    CON
    _clkmode = xtal1 + pll16x
    _xinfreq = 5_000_000
    
    VAR
      long i
      
    OBJ
      Debug: "FullDuplexSerialPlus"
      
    PUB TestCase 
      Debug.start(31, 30, 0, 115200)
    
      repeat i from 0 to 650
        case i
          1: debug.str(string("no 1"))
          2: debug.str(string("no 2"))
          3: debug.str(string("no 3"))
          4: debug.str(string("no 4"))
          5: debug.str(string("no 5"))
          6: debug.str(string("no 6"))
          7: debug.str(string("no 7"))
          8: debug.str(string("no 8"))
          9: debug.str(string("no 9"))
          10: debug.str(string("no 10"))
          11: debug.str(string("no 11"))
          12: debug.str(string("no 12"))
          13: debug.str(string("no 13"))
          14: debug.str(string("no 14"))
          15: debug.str(string("no 15"))
          16: debug.str(string("no 16"))
          17: debug.str(string("no 17"))
          18: debug.str(string("no 18"))
          19: debug.str(string("no 19"))
          20: debug.str(string("no 20"))
          21: debug.str(string("no 21"))
          22: debug.str(string("no 22"))
          23: debug.str(string("no 23"))
          24: debug.str(string("no 24"))
          25: debug.str(string("no 25"))
          26: debug.str(string("no 26"))
          27: debug.str(string("no 27"))
          28: debug.str(string("no 28"))
          29: debug.str(string("no 29"))
          30: debug.str(string("no 30"))
          31: debug.str(string("no 31"))
          32: debug.str(string("no 32"))
          33: debug.str(string("no 33"))
          34: debug.str(string("no 34"))
          35: debug.str(string("no 35"))
          36: debug.str(string("no 36"))
          37: debug.str(string("no 37"))
          38: debug.str(string("no 38"))
          39: debug.str(string("no 39"))
          40: debug.str(string("no 40"))
          41: debug.str(string("no 41"))
          42: debug.str(string("no 42"))
          43: debug.str(string("no 43"))
          44: debug.str(string("no 44"))
          45: debug.str(string("no 45"))
          46: debug.str(string("no 46"))
          47: debug.str(string("no 47"))
          48: debug.str(string("no 48"))
          49: debug.str(string("no 49"))
          50: debug.str(string("no 50"))
          51: debug.str(string("no 51"))
          52: debug.str(string("no 52"))
          53: debug.str(string("no 53"))
          54: debug.str(string("no 54"))
          55: debug.str(string("no 55"))
          56: debug.str(string("no 56"))
          57: debug.str(string("no 57"))
          58: debug.str(string("no 58"))
          59: debug.str(string("no 59"))
          60: debug.str(string("no 60"))
          61: debug.str(string("no 61"))
          62: debug.str(string("no 62"))
          63: debug.str(string("no 63"))
          64: debug.str(string("no 64"))
          other:
            case i
              65: debug.str(string("no 65"))
              66: debug.str(string("no 66"))
              67: debug.str(string("no 67"))
              68: debug.str(string("no 68"))
              69: debug.str(string("no 69"))
              70: debug.str(string("no 70"))
              71: debug.str(string("no 71"))
              72: debug.str(string("no 72"))
              73: debug.str(string("no 73"))
              74: debug.str(string("no 74"))
              75: debug.str(string("no 75"))
              76: debug.str(string("no 76"))
              77: debug.str(string("no 77"))
              78: debug.str(string("no 78"))
              79: debug.str(string("no 79"))
              80: debug.str(string("no 80"))
              81: debug.str(string("no 81"))
              82: debug.str(string("no 82"))
              83: debug.str(string("no 83"))
              84: debug.str(string("no 84"))
              85: debug.str(string("no 85"))
              86: debug.str(string("no 86"))
              87: debug.str(string("no 87"))
              88: debug.str(string("no 88"))
              89: debug.str(string("no 89"))
              90: debug.str(string("no 90"))
              91: debug.str(string("no 91"))
              92: debug.str(string("no 92"))
              93: debug.str(string("no 93"))
              94: debug.str(string("no 94"))
              95: debug.str(string("no 95"))
              96: debug.str(string("no 96"))
              97: debug.str(string("no 97"))
              98: debug.str(string("no 98"))
              99: debug.str(string("no 99"))
              100: debug.str(string("no 100"))
              101: debug.str(string("no 101"))
              102: debug.str(string("no 102"))
              103: debug.str(string("no 103"))
              104: debug.str(string("no 104"))
              105: debug.str(string("no 105"))
              106: debug.str(string("no 106"))
              107: debug.str(string("no 107"))
              108: debug.str(string("no 108"))
              109: debug.str(string("no 109"))
              110: debug.str(string("no 110"))
              111: debug.str(string("no 111"))
              112: debug.str(string("no 112"))
              113: debug.str(string("no 113"))
              114: debug.str(string("no 114"))
              115: debug.str(string("no 115"))
              116: debug.str(string("no 116"))
              117: debug.str(string("no 117"))
              118: debug.str(string("no 118"))
              119: debug.str(string("no 119"))
              120: debug.str(string("no 120"))
              121: debug.str(string("no 121"))
              122: debug.str(string("no 122"))
              123: debug.str(string("no 123"))
              124: debug.str(string("no 124"))
              125: debug.str(string("no 125"))
              126: debug.str(string("no 126"))
              127: debug.str(string("no 127"))
              128: debug.str(string("no 128"))
              other:
                case i
                  129: debug.str(string("no 129"))
                  130: debug.str(string("no 130"))
                  131: debug.str(string("no 131"))
                  132: debug.str(string("no 132"))
                  133: debug.str(string("no 133"))
                  134: debug.str(string("no 134"))
                  135: debug.str(string("no 135"))
                  136: debug.str(string("no 136"))
                  137: debug.str(string("no 137"))
                  138: debug.str(string("no 138"))
                  139: debug.str(string("no 139"))
                  140: debug.str(string("no 140"))
                  141: debug.str(string("no 141"))
                  142: debug.str(string("no 142"))
                  143: debug.str(string("no 143"))
                  144: debug.str(string("no 144"))
                  145: debug.str(string("no 145"))
                  146: debug.str(string("no 146"))
                  147: debug.str(string("no 147"))
                  148: debug.str(string("no 148"))
                  149: debug.str(string("no 149"))
                  150: debug.str(string("no 150"))
                  151: debug.str(string("no 151"))
                  152: debug.str(string("no 152"))
                  153: debug.str(string("no 153"))
                  154: debug.str(string("no 154"))
                  155: debug.str(string("no 155"))
                  156: debug.str(string("no 156"))
                  157: debug.str(string("no 157"))
                  158: debug.str(string("no 158"))
                  159: debug.str(string("no 159"))
                  160: debug.str(string("no 160"))
                  161: debug.str(string("no 161"))
                  162: debug.str(string("no 162"))
                  163: debug.str(string("no 163"))
                  164: debug.str(string("no 164"))
                  165: debug.str(string("no 165"))
                  166: debug.str(string("no 166"))
                  167: debug.str(string("no 167"))
                  168: debug.str(string("no 168"))
                  169: debug.str(string("no 169"))
                  170: debug.str(string("no 170"))
                  171: debug.str(string("no 171"))
                  172: debug.str(string("no 172"))
                  173: debug.str(string("no 173"))
                  174: debug.str(string("no 174"))
                  175: debug.str(string("no 175"))
                  176: debug.str(string("no 176"))
                  177: debug.str(string("no 177"))
                  178: debug.str(string("no 178"))
                  179: debug.str(string("no 179"))
                  180: debug.str(string("no 180"))
                  181: debug.str(string("no 181"))
                  182: debug.str(string("no 182"))
                  183: debug.str(string("no 183"))
                  184: debug.str(string("no 184"))
                  185: debug.str(string("no 185"))
                  186: debug.str(string("no 186"))
                  187: debug.str(string("no 187"))
                  188: debug.str(string("no 188"))
                  189: debug.str(string("no 189"))
                  190: debug.str(string("no 190"))
                  191: debug.str(string("no 191"))
                  192: debug.str(string("no 192"))
                  'if you would do another "other"
                  'here you would get an errormessage blocknest stackoverflow
                  'other: debug.str(string("no 191"))
                    'case i
                      '191: debug.str(string("no 191")) 
    
        'but why not using several case statements after each other like here
        'or if you need only different values to use the command "lookup"
        case i 
          193: debug.str(string("no 193"))
          194: debug.str(string("no 194"))
          195: debug.str(string("no 195"))
          196: debug.str(string("no 196"))
          197: debug.str(string("no 197"))
          198: debug.str(string("no 198"))
          199: debug.str(string("no 199"))
          200: debug.str(string("no 200"))
          201: debug.str(string("no 201"))
          202: debug.str(string("no 202"))
          203: debug.str(string("no 203"))
          204: debug.str(string("no 204"))
          205: debug.str(string("no 205"))
          206: debug.str(string("no 206"))
          207: debug.str(string("no 207"))
          208: debug.str(string("no 208"))
          209: debug.str(string("no 209"))
          210: debug.str(string("no 210"))
          211: debug.str(string("no 211"))
          212: debug.str(string("no 212"))
          213: debug.str(string("no 213"))
          214: debug.str(string("no 214"))
          215: debug.str(string("no 215"))
          216: debug.str(string("no 216"))
          217: debug.str(string("no 217"))
          218: debug.str(string("no 218"))
          219: debug.str(string("no 219"))
          220: debug.str(string("no 220"))
          221: debug.str(string("no 221"))
          222: debug.str(string("no 222"))
          223: debug.str(string("no 223"))
          224: debug.str(string("no 224"))
          225: debug.str(string("no 225"))
          226: debug.str(string("no 226"))
          227: debug.str(string("no 227"))
          228: debug.str(string("no 228"))
          229: debug.str(string("no 229"))
          230: debug.str(string("no 230"))
          231: debug.str(string("no 231"))
          232: debug.str(string("no 232"))
          233: debug.str(string("no 233"))
          234: debug.str(string("no 234"))
          235: debug.str(string("no 235"))
          236: debug.str(string("no 236"))
          237: debug.str(string("no 237"))
          238: debug.str(string("no 238"))
          239: debug.str(string("no 239"))
          240: debug.str(string("no 240"))
          241: debug.str(string("no 241"))
          242: debug.str(string("no 242"))
          243: debug.str(string("no 243"))
          244: debug.str(string("no 244"))
          245: debug.str(string("no 245"))
          246: debug.str(string("no 246"))
          247: debug.str(string("no 247"))
          248: debug.str(string("no 248"))
          249: debug.str(string("no 249"))
          250: debug.str(string("no 250"))
          251: debug.str(string("no 251"))
          252: debug.str(string("no 252"))
          253: debug.str(string("no 253"))
          254: debug.str(string("no 254"))
          255: debug.str(string("no 255"))
          256: debug.str(string("no 255"))
    
     'another limit are 256 string-constants (0-255)
     'debug.str(string("no 257"))
     'error too many string constants 
    
    
    


    best regards

    Stefan
  • Zap-oZap-o Posts: 452
    edited 2009-04-12 15:06
    Well thanks people. tongue.gif
  • StefanL38StefanL38 Posts: 2,292
    edited 2009-04-12 16:18
    Hello Zap-o

    CON
    _clkmode = xtal1 + pll16x
    _xinfreq = 5_000_000
    
    VAR
      long i
      
    OBJ
      Debug: "FullDuplexSerialPlus"
      
    PUB TestCase 
      Debug.start(31, 30, 0, 115200)
    
      repeat i from 1 to 256
        case i
          1: debug.str(string("no 1"))
          2: debug.str(string("no 2"))
          3: debug.str(string("no 3"))
          4: debug.str(string("no 4"))
          5: debug.str(string("no 5"))
          6: debug.str(string("no 6"))
          7: debug.str(string("no 7"))
          8: debug.str(string("no 8"))
          9: debug.str(string("no 9"))
          10: debug.str(string("no 10"))
          11: debug.str(string("no 11"))
          12: debug.str(string("no 12"))
          13: debug.str(string("no 13"))
          14: debug.str(string("no 14"))
          15: debug.str(string("no 15"))
          16: debug.str(string("no 16"))
          17: debug.str(string("no 17"))
          18: debug.str(string("no 18"))
          19: debug.str(string("no 19"))
          20: debug.str(string("no 20"))
          21: debug.str(string("no 21"))
          22: debug.str(string("no 22"))
          23: debug.str(string("no 23"))
          24: debug.str(string("no 24"))
          25: debug.str(string("no 25"))
          26: debug.str(string("no 26"))
          27: debug.str(string("no 27"))
          28: debug.str(string("no 28"))
          29: debug.str(string("no 29"))
          30: debug.str(string("no 30"))
          31: debug.str(string("no 31"))
          32: debug.str(string("no 32"))
          33: debug.str(string("no 33"))
          34: debug.str(string("no 34"))
          35: debug.str(string("no 35"))
          36: debug.str(string("no 36"))
          37: debug.str(string("no 37"))
          38: debug.str(string("no 38"))
          39: debug.str(string("no 39"))
          40: debug.str(string("no 40"))
          41: debug.str(string("no 41"))
          42: debug.str(string("no 42"))
          43: debug.str(string("no 43"))
          44: debug.str(string("no 44"))
          45: debug.str(string("no 45"))
          46: debug.str(string("no 46"))
          47: debug.str(string("no 47"))
          48: debug.str(string("no 48"))
          49: debug.str(string("no 49"))
          50: debug.str(string("no 50"))
          51: debug.str(string("no 51"))
          52: debug.str(string("no 52"))
          53: debug.str(string("no 53"))
          54: debug.str(string("no 54"))
          55: debug.str(string("no 55"))
          56: debug.str(string("no 56"))
          57: debug.str(string("no 57"))
          58: debug.str(string("no 58"))
          59: debug.str(string("no 59"))
          60: debug.str(string("no 60"))
          61: debug.str(string("no 61"))
          62: debug.str(string("no 62"))
          63: debug.str(string("no 63"))
          64: debug.str(string("no 64"))
          other:
            case i
              65: debug.str(string("no 65"))
              66: debug.str(string("no 66"))
              67: debug.str(string("no 67"))
              68: debug.str(string("no 68"))
              69: debug.str(string("no 69"))
              70: debug.str(string("no 70"))
              71: debug.str(string("no 71"))
              72: debug.str(string("no 72"))
              73: debug.str(string("no 73"))
              74: debug.str(string("no 74"))
              75: debug.str(string("no 75"))
              76: debug.str(string("no 76"))
              77: debug.str(string("no 77"))
              78: debug.str(string("no 78"))
              79: debug.str(string("no 79"))
              80: debug.str(string("no 80"))
              81: debug.str(string("no 81"))
              82: debug.str(string("no 82"))
              83: debug.str(string("no 83"))
              84: debug.str(string("no 84"))
              85: debug.str(string("no 85"))
              86: debug.str(string("no 86"))
              87: debug.str(string("no 87"))
              88: debug.str(string("no 88"))
              89: debug.str(string("no 89"))
              90: debug.str(string("no 90"))
              91: debug.str(string("no 91"))
              92: debug.str(string("no 92"))
              93: debug.str(string("no 93"))
              94: debug.str(string("no 94"))
              95: debug.str(string("no 95"))
              96: debug.str(string("no 96"))
              97: debug.str(string("no 97"))
              98: debug.str(string("no 98"))
              99: debug.str(string("no 99"))
              100: debug.str(string("no 100"))
              101: debug.str(string("no 101"))
              102: debug.str(string("no 102"))
              103: debug.str(string("no 103"))
              104: debug.str(string("no 104"))
              105: debug.str(string("no 105"))
              106: debug.str(string("no 106"))
              107: debug.str(string("no 107"))
              108: debug.str(string("no 108"))
              109: debug.str(string("no 109"))
              110: debug.str(string("no 110"))
              111: debug.str(string("no 111"))
              112: debug.str(string("no 112"))
              113: debug.str(string("no 113"))
              114: debug.str(string("no 114"))
              115: debug.str(string("no 115"))
              116: debug.str(string("no 116"))
              117: debug.str(string("no 117"))
              118: debug.str(string("no 118"))
              119: debug.str(string("no 119"))
              120: debug.str(string("no 120"))
              121: debug.str(string("no 121"))
              122: debug.str(string("no 122"))
              123: debug.str(string("no 123"))
              124: debug.str(string("no 124"))
              125: debug.str(string("no 125"))
              126: debug.str(string("no 126"))
              127: debug.str(string("no 127"))
              128: debug.str(string("no 128"))
              other:
                case i
                  129: debug.str(string("no 129"))
                  130: debug.str(string("no 130"))
                  131: debug.str(string("no 131"))
                  132: debug.str(string("no 132"))
                  133: debug.str(string("no 133"))
                  134: debug.str(string("no 134"))
                  135: debug.str(string("no 135"))
                  136: debug.str(string("no 136"))
                  137: debug.str(string("no 137"))
                  138: debug.str(string("no 138"))
                  139: debug.str(string("no 139"))
                  140: debug.str(string("no 140"))
                  141: debug.str(string("no 141"))
                  142: debug.str(string("no 142"))
                  143: debug.str(string("no 143"))
                  144: debug.str(string("no 144"))
                  145: debug.str(string("no 145"))
                  146: debug.str(string("no 146"))
                  147: debug.str(string("no 147"))
                  148: debug.str(string("no 148"))
                  149: debug.str(string("no 149"))
                  150: debug.str(string("no 150"))
                  151: debug.str(string("no 151"))
                  152: debug.str(string("no 152"))
                  153: debug.str(string("no 153"))
                  154: debug.str(string("no 154"))
                  155: debug.str(string("no 155"))
                  156: debug.str(string("no 156"))
                  157: debug.str(string("no 157"))
                  158: debug.str(string("no 158"))
                  159: debug.str(string("no 159"))
                  160: debug.str(string("no 160"))
                  161: debug.str(string("no 161"))
                  162: debug.str(string("no 162"))
                  163: debug.str(string("no 163"))
                  164: debug.str(string("no 164"))
                  165: debug.str(string("no 165"))
                  166: debug.str(string("no 166"))
                  167: debug.str(string("no 167"))
                  168: debug.str(string("no 168"))
                  169: debug.str(string("no 169"))
                  170: debug.str(string("no 170"))
                  171: debug.str(string("no 171"))
                  172: debug.str(string("no 172"))
                  173: debug.str(string("no 173"))
                  174: debug.str(string("no 174"))
                  175: debug.str(string("no 175"))
                  176: debug.str(string("no 176"))
                  177: debug.str(string("no 177"))
                  178: debug.str(string("no 178"))
                  179: debug.str(string("no 179"))
                  180: debug.str(string("no 180"))
                  181: debug.str(string("no 181"))
                  182: debug.str(string("no 182"))
                  183: debug.str(string("no 183"))
                  184: debug.str(string("no 184"))
                  185: debug.str(string("no 185"))
                  186: debug.str(string("no 186"))
                  187: debug.str(string("no 187"))
                  188: debug.str(string("no 188"))
                  189: debug.str(string("no 189"))
                  190: debug.str(string("no 190"))
                  191: debug.str(string("no 191"))
                  192: debug.str(string("no 192"))
                  'if you would do another "other"
                  'here you would get an errormessage blocknest stackoverflow
                  'other: debug.str(string("no 191"))
                    'case i
                      '191: debug.str(string("no 191")) 
    
        'but why not using several case statements after each other like here
        'or if you need only different values to use the command "lookup"
        case i 
          193: debug.str(string("no 193"))
          194: debug.str(string("no 194"))
          195: debug.str(string("no 195"))
          196: debug.str(string("no 196"))
          197: debug.str(string("no 197"))
          198: debug.str(string("no 198"))
          199: debug.str(string("no 199"))
          200: debug.str(string("no 200"))
          201: debug.str(string("no 201"))
          202: debug.str(string("no 202"))
          203: debug.str(string("no 203"))
          204: debug.str(string("no 204"))
          205: debug.str(string("no 205"))
          206: debug.str(string("no 206"))
          207: debug.str(string("no 207"))
          208: debug.str(string("no 208"))
          209: debug.str(string("no 209"))
          210: debug.str(string("no 210"))
          211: debug.str(string("no 211"))
          212: debug.str(string("no 212"))
          213: debug.str(string("no 213"))
          214: debug.str(string("no 214"))
          215: debug.str(string("no 215"))
          216: debug.str(string("no 216"))
          217: debug.str(string("no 217"))
          218: debug.str(string("no 218"))
          219: debug.str(string("no 219"))
          220: debug.str(string("no 220"))
          221: debug.str(string("no 221"))
          222: debug.str(string("no 222"))
          223: debug.str(string("no 223"))
          224: debug.str(string("no 224"))
          225: debug.str(string("no 225"))
          226: debug.str(string("no 226"))
          227: debug.str(string("no 227"))
          228: debug.str(string("no 228"))
          229: debug.str(string("no 229"))
          230: debug.str(string("no 230"))
          231: debug.str(string("no 231"))
          232: debug.str(string("no 232"))
          233: debug.str(string("no 233"))
          234: debug.str(string("no 234"))
          235: debug.str(string("no 235"))
          236: debug.str(string("no 236"))
          237: debug.str(string("no 237"))
          238: debug.str(string("no 238"))
          239: debug.str(string("no 239"))
          240: debug.str(string("no 240"))
          241: debug.str(string("no 241"))
          242: debug.str(string("no 242"))
          243: debug.str(string("no 243"))
          244: debug.str(string("no 244"))
          245: debug.str(string("no 245"))
          246: debug.str(string("no 246"))
          247: debug.str(string("no 247"))
          248: debug.str(string("no 248"))
          249: debug.str(string("no 249"))
          250: debug.str(string("no 250"))
          251: debug.str(string("no 251"))
          252: debug.str(string("no 252"))
          253: debug.str(string("no 253"))
          254: debug.str(string("no 254"))
          255: debug.str(string("no 255"))
          256: debug.str(string("no 255"))
    
     'another limit are 256 string-constants (0-255)
     'debug.str(string("no 257"))
     'error too many string constants 
    
    
    


    best regards

    Stefan

    Post Edited (StefanL38) : 4/12/2009 4:25:35 PM GMT
Sign In or Register to comment.