Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

2 Bedingungen bei größer/kleiner in VB

Dino30002 / 7 Antworten / Baumansicht Nickles

Huhu,


Ich würde gerne aus ca. 10 Zahlen die größte oder kleinste herausfinden. Hier der Code:


Dim test1, test2, test3
test1 = "3"
test2 = "2"
test3 = "4"
If test1 > test2 And test3 Then
MsgBox "Klappt!"
End If


Test1 soll darauf geprüft werden ob es größer als Test2 und Test3 ist. Eigentlich dürfte hier doch keine MsgBox kommen, denn Test2 ist = 2, also kleiner als 3. Test3 ist allerdings = 4, also größer als 3. Trotzdem kommt hier eine MsgBox, die Schleife wird also ausgeführt. Es scheint also so, als ob nur die erste Bedingung beachtet werden würde.


MfG,
Dino

bei Antwort benachrichtigen
T-Rex Dino30002 „2 Bedingungen bei größer/kleiner in VB“
Optionen

Deine Bedingung ist falsch.
Du mußt jeden Vergleich separat durchziehen, also test1 > test2 und test1 > test3.
In Deiner Version wird verglichen, ob text1 > test2 ist und das Ergebni mit test3 geANDet.

So ist es richtig:

If (test1 > test2) And (test1 > test3) Then

  MsgBox "Test1 (" & CStr(test1) & ") ist am größten."
ElseIf (test2 > test1) And (test2 > test3) Then
  MsgBox "Test2 (" & CStr(test2) & ") ist am größten."
Else
  MsgBox "Test3 (" & CStr(test3) & ") ist am größten."
End If
 GrüßeT-Rex 
bei Antwort benachrichtigen
REPI T-Rex „Deine Bedingung ist falsch. Du mußt jeden Vergleich separat durchziehen, also...“
Optionen

Hallo T-Rex !

Es ist mir nun schon öfters aufgefallen, daß Deine wiedergegebenen Source für mich nicht (schwer) lesbar sind, da die Zeilen übereinanderrutschen !

Liegt das nur an mir ? (IE 6.0)


Gruß


repi


Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen
T-Rex REPI „Hallo T-Rex ! Es ist mir nun schon öfters aufgefallen, daß Deine...“
Optionen

Hallo repi,

das kannst Du Dir aussuchen, ob es am IE, Mozilla oder CSS von nickles.de liegt.

Hier ein Screenshot.

Mein Code ist mit <pre> </pre> formatiert.
Weil ich dann im Mozilla immer gigantische Abstände zwischen den Zeilen hatte, habe ich folgendes als Style angegeben:

style="line-height:6px;"


Kann sein, daß Mozilla damit Probleme hat, kann auch sein, daß das dem IE nicht schmeckt.

Ich werde das Attribut aber nicht mehr verwenden. Schließlich will ich niemanden aussperren.

Danke für die Info.
 GrüßeT-Rex 
bei Antwort benachrichtigen
Spasstiger Dino30002 „2 Bedingungen bei größer/kleiner in VB“
Optionen

Warum macht ihr das so kompliziert?
Hier meine Variante (kein spezieller Code für eine Sprache):

Zahl[1]=4
Zahl[2]=8
Zahl[3]=3
.
.
.
Zahl[10]=12
i=1
min=Zahl[1]
max=Zahl[1]
Solange i {wenn Zahl[i] wenn Zahl[i]>max dann Zahl[i]=max
i=i+1}

Ausgabe: "Größte Zahl =";max
"Kleinste Zahl=";min


Vorteil meiner Lösung: Sie ist beliebig erweiterbar auch auf mehr als zehn Zahlen.

bei Antwort benachrichtigen
Spasstiger Nachtrag zu: „Warum macht ihr das so kompliziert? Hier meine Variante kein spezieller Code...“
Optionen

Irgendwie hat er was abgeschnitten. Also das in der geschweiften Klammer sollte heißen:
{wenn Zahl[i] wenn Zahl[i]>max dann Zahl[i]=max
i=i+1}

bei Antwort benachrichtigen
Dino30002 Nachtrag zu: „2 Bedingungen bei größer/kleiner in VB“
Optionen

Danke für eure Antworten.

T-Rex, was bewirkt die Funktion CStr in deinem Beispiel? Die Zahl wird in einen String umgewandelt, weil man sie sonst nicht in die MsgBox stellen könnte, ist das richtig?

Spasstiger, dein Code sieht sehr interessant aus, gerade weil ich das ganze für ca. 20 Zahlen haben muss, aber ich durchblicke den Code nicht. Wieso ist in deiner geschweiften Klammer zwei mal hintereinander eine Bedingung?
Könntest du oder jemand der den Code versteht ihn bitte in VB ausdrücken?

MfG,
Dino

bei Antwort benachrichtigen
Dino30002 Nachtrag zu: „2 Bedingungen bei größer/kleiner in VB“
Optionen

Weiß das keiner? Dann hätte ich noch eine Frage. Ist 0 größer als eine leere Menge? Und wie kann man "kleiner oder gleich" ausdrücken? Mit

bei Antwort benachrichtigen