Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Procedure.s GetMonthName(nValue.l)
If nValue > 0
ProcedureReturn StringField("Januar,Februar,März,April,Mai,Juni,July,August,September,Oktober,November,Dezember", nValue, ",")
EndIf
EndProcedure
Procedure.s SelectMonthName(nValue.l)
Protected Result.s
Select nValue
Case 1 : Result = "Januar"
Case 2 : Result = "Februar"
Case 3 : Result = "März"
Case 4 : Result = "April"
Case 5 : Result = "Mai"
Case 6 : Result = "Juni"
Case 7 : Result = "July"
Case 8 : Result = "August"
Case 9 : Result = "September"
Case 10 : Result = "Oktober"
Case 11 : Result = "November"
Case 12 : Result = "Dezember"
EndSelect
ProcedureReturn Result
EndProcedure
Procedure.s IfMonthName(nValue.l)
Protected Result.s
If nValue = 1 : Result = "Januar"
ElseIf nValue = 2 : Result = "Februar"
ElseIf nValue = 3 : Result = "März"
ElseIf nValue = 4 : Result = "April"
ElseIf nValue = 5 : Result = "Mai"
ElseIf nValue = 6 : Result = "Juni"
ElseIf nValue = 7 : Result = "July"
ElseIf nValue = 8 : Result = "August"
ElseIf nValue = 9 : Result = "September"
ElseIf nValue = 10 : Result = "Oktober"
ElseIf nValue = 11 : Result = "November"
ElseIf nValue = 12 : Result = "Dezember"
EndIf
ProcedureReturn Result
EndProcedure
; Test 1
Start = ElapsedMilliseconds()
For I = 1 To 1000000
For J = 1 To 12
GetMonthName(J)
Next
Next
MessageRequester("GetMonthName", Str(ElapsedMilliseconds() - Start))
; Test 2
Start = ElapsedMilliseconds()
For I = 1 To 1000000
For J = 1 To 12
SelectMonthName(J)
Next
Next
MessageRequester("SelectMonthName", Str(ElapsedMilliseconds() - Start))
; Test 3
Start = ElapsedMilliseconds()
For I = 1 To 1000000
For J = 1 To 12
IfMonthName(J)
Next
Next
MessageRequester("IfMonthName", Str(ElapsedMilliseconds() - Start))
Ich hoffe der Test ist für alle 3 Funktionen gleichberechtigt. Die schönste (die erste) ist Wohl am langsamsten, aber weniger zu tippen
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
bla.s = "quit"
For a = 0 To 20
T1 = ElapsedMilliseconds()
For b = 0 To 1000000
Repeat
If bla = "quit"
quit = 1
EndIf
Until quit=1
quit = 0
Next b
T2 = ElapsedMilliseconds()
ergebnis$ + Str(T2 - T1) + " / "
T1 = ElapsedMilliseconds()
For b = 0 To 1000000
Repeat
If bla = "quit"
Break
EndIf
ForEver
quit = 0
Next
T2 = ElapsedMilliseconds()
ergebnis$ + Str(T2 - T1) + #CRLF$
Next a
MessageRequester("",ergebnis$)
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping