Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
MaKo
Anmeldungsdatum: 04.12.2021 Beiträge: 7 Wohnort: Flensburg
|
Verfasst am: 12.03.2024, 20:59 Titel: SELECT CASE |
|
|
Moin,
ich arbeite mich gerade durch das „FreeBASIC-Einsteigerhandbuch“ von Herrn S. Markthaler.
Beim Thema SELECT CASE habe ich ein Problem.
Ermittelt werden soll, ob eine Zahl gerade oder ungerade ist.
Es wird aber nichts ausgegeben.
Wo ist mein Denkfehler?
Grüße
MaKo
ps.
Vielen Dank an Herrn Markthaler für das verständliche Skript. Es hat mir bisher sehr geholfen. 👍
code:
sub odd (byref z as uinteger)
select case z
case (z and 1) = 0
? "gerade"
case (z and 1) = 1
? "ungerade"
end select
end sub
dim as uinteger zahl = 2
odd(zahl)
zahl+=1
odd(zahl) |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2524 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 12.03.2024, 22:02 Titel: |
|
|
Siehe dazu auch
https://www.freebasic.net/wiki/KeyPgSelectcase
d.h. bei SELECT CASE kommt immer eine Variable und im CASE nur noch Werte hinein. Für Deinen Fall ist IF THEN ELSEIF wie unter
https://www.freebasic.net/wiki/KeyPgElseif
gezeigt das Geeignete:
Code: | If z Mod 2 = 0 Then
Print "Gerade"
Else
Print "Ungerade"
End If |
Allerdings kann das Ganze SELECT CASE-"kompatibel" wie folgt formuliert werden:
Code: | Select Case z Mod 2
Case 0
Print "Gerade"
Case 1
Print "Ungerade"
End Select |
_________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1261 Wohnort: Ruhrpott
|
Verfasst am: 13.03.2024, 15:44 Titel: Re: SELECT CASE |
|
|
Hallo MaKo!
MaKo hat Folgendes geschrieben: | Wo ist mein Denkfehler? |
dreael hat Folgendes geschrieben: | bei SELECT CASE kommt immer eine Variable und im CASE nur noch Werte hinein. |
Mit deinem Code als Grundlage sähe das dann so aus: Code: | Sub odd (ByRef z As UInteger)
Select Case (z And 1)
Case 0
? "gerade"
Case 1
? "ungerade"
End Select
End Sub
Dim As UInteger zahl = 2
odd(zahl)
zahl+=1
odd(zahl)
Sleep |
Wobei (um die Verwirrung komplett zu machen ) ich persönlich diese Variante bevorzugen würde: Code: | Function odd (ByRef z As UInteger) As String
Select Case (z And 1)
Case 0
Return "gerade"
Case 1
Return "ungerade"
End Select
End Function
Dim As UInteger zahl = 2
? odd(zahl)
zahl+=1
? odd(zahl)
Sleep |
Du siehst, viele Wege führen zum Ziel. Viel Spass noch beim Ausprobieren.
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
MaKo
Anmeldungsdatum: 04.12.2021 Beiträge: 7 Wohnort: Flensburg
|
Verfasst am: 13.03.2024, 17:59 Titel: . |
|
|
Danke dreael!
Danke grindstone
Gucke ich mir am WE in Ruhe an. |
|
Nach oben |
|
|
|