- Labornetzteil AliExpress         
Ergebnis 1 bis 6 von 6

Thema: 10x IF THEN, oder was eleganteres möglich??

  1. #1
    dl1akp
    Gast

    10x IF THEN, oder was eleganteres möglich??

    Anzeige

    Praxistest und DIY Projekte
    Hallo Leute,

    habe mal ne Frage. Ich lese mit dem ADC einen Spannungswert und will nun bei verschiedenen Werten 10 verschiedene "Dinge" ablaufen lassen.

    Muß ich nun 10x z.B.

    IF Wert = 5 Then Gosub xyz
    IF Wert = 10 THEN GOSUB klm usw.

    machen, oder gibt es auch eine elegantere, vielleicht sogar sparsamere Variante?

    Sowas steht leider in keinem Buch, oder kennt jemand eines über strukturierte Programmiereung in BASIC??

    Danke, Andreas

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.10.2004
    Ort
    Rheinstetten
    Alter
    41
    Beiträge
    357
    Es gibt in Basic wenn ich mich nicht irre so etwas:

    Code:
    myVar = 3;
    select case myVar 
      case 1
        print "one"
      case 2
        print "two"
      case 3
        print "three"
      case else
        print "not 1, 2 or 3"
    end select
    Unwissenheit ist ein Segen

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.10.2004
    Ort
    Rheinstetten
    Alter
    41
    Beiträge
    357
    Das ist sowas wie switch in Java oder C...
    Unwissenheit ist ein Segen

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Ich find' den "Select case" bei mehrfach Abfragen (der gleichen Variablen) am saubersten und gut zu lesen
    Es gibt aber auch die "ELSEIF" Methode, die "IF-Bäume" etwas handsamer macht, besonders wenn unterschiedliche Bedingungen gefragt werden müssen:
    IF bedingung1 THEN
    ----
    ELSEIF bedingung2 THEN
    ----
    ELSEIF bedingung3 THEN
    ----
    END IF
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von darwin.nuernberg
    Registriert seit
    08.08.2004
    Ort
    A, A
    Alter
    59
    Beiträge
    1.305
    Blog-Einträge
    1
    Ohne weiteren Kommentar:

    Code:
    ' Analog Input Test
    '
    
    $regfile = "m32def.dat"
    $crystal = 16000000
    $baud = 19200
    Config Adc = Single , Prescaler = Auto
    
    Start Adc
    Dim W As Word , Channel As Byte
    
    
    Channel  = 1
    
    Print "Startup";
    
    Do
      W = Getadc(channel)
    
      Select Case W
         Case 0 : Print "Null"
         Case Is < 10 : Print "weniger als 10"
         Case 100 To 200 : Print "irgendwo zwischen 100 und 200"
         Case Is < 500 : Print "Sehr viel"
         Case Else : Print "irgendwas anderes"
    
      End Select
    
      Waitms 100
    
    Loop
    
    Stop Adc
    End
    Gruss
    Darwin (meine Projekte sind auf meiner Pinnwand zu finden)

  6. #6
    Erfahrener Benutzer Roboter Experte Avatar von Rage_Empire
    Registriert seit
    10.03.2005
    Ort
    Pforzheim
    Beiträge
    710
    mir würde auch noch der "on...goto"-Befehl einfallen. kommt aber auf die Anwendung, bzw. das gewünschte Ergebnis an.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test