if in for
danzig
- javascript
ich will eine schleife machen, in der jedesmal neu eine bedingung geprüft wird:
var zeichenkette = "hallo";
var z = 0;
for ( i = 0 ; i >= 5 ; i++ ) {
if ( zeichenkette.charAt(z) == "a" ) {
alert ("klappt");
} else {
alert("klappt nicht");
}/*else beenden*/
z++;
} /*for beenden*/
Bei mir geht er nicht mal in die if-abfrage!
weder klappt noch klappt nicht werden ausgegeben..
warum nicht? kann man if-Bedingungen nicht in eine for-schleife einbauen?
MfG Dankzig
Das kommt davon, dass die for-Schleife gar nicht durchlaufen wird. Im Gegensatz zu Basic bedeutet der zweite Parameter zu for nicht "bis dies eintritt", sondern "solange dies wahr ist".
Mach es so, das müsste klappen:
var zeichenkette = "hallo";
var z = 0;
for ( i = 0 ; i <= 5 ; i++ ) {
if ( zeichenkette.charAt(z) == "a" ) {
alert ("klappt");
} else {
alert("klappt nicht");
}/*else beenden*/
z++;
} /*for beenden*/
Das kommt davon, dass die for-Schleife gar nicht durchlaufen wird. Im Gegensatz zu Basic bedeutet der zweite Parameter zu for nicht "bis dies eintritt", sondern "solange dies wahr ist".
danke Mfg Danzig
Moin!
Warum sollte das nicht gehen?
var zeichenkette = "hallo";
var strAusgabe = "Da ist kein a drin!";
for ( i = 0 ; i >= zeichenkette.lenght ; i++ ) {
if ( zeichenkette.charAt(i) == "a" ) {
strAusgabe="Da ist ein a drin!";
i=zeichenkette.lenght; /* Abbruchbedingung erfüllen */
}
}
alert (strAusgabe);
<http://de.selfhtml.org/javascript/objekte/string.htm#length title:zeichenkette.lengt>
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Moin!
Warum sollte das nicht gehen?
for ( i = 0 ; i >= zeichenkette.lenght ; i++ ) {
Klar, weil es
for ( i = 0 ; i <= zeichenkette.lenght ; i++ ) {
heissen muss.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Tach.
Warum sollte das nicht gehen?
for ( i = 0 ; i >= zeichenkette.lenght ; i++ ) {Klar, weil es
for ( i = 0 ; i <= zeichenkette.lenght ; i++ ) {
> heissen muss.
Es heißt übrigens auch "length", nicht "lenght".
--
Once is a mistake, twice is jazz.
Moin!
Es heißt übrigens auch "length", nicht "lenght".
Stimmt. Du hast Recht.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hallo,
Klar, weil es
for ( i = 0 ; i <= zeichenkette.lenght ; i++ )
> > heissen muss.
> Es heißt übrigens auch "length", nicht "lenght".
Richtig, und die Laufbedingung sollte auch nicht auf ">=" geprüft werden, sondern nur auf ">", sonst knallt's im letzten Durchlauf, wenn man auf das erste Zeichen jenseits des Strings zugreifen will.
Ciao,
Martin
--
[Ich bin 30](http://community.de.selfhtml.org/zitatesammlung/zitat318). Ich demensiere apokalyptisch.
(Orlando)
Moin!
for ( i = 0 ; i <= zeichenkette.lenght ; i++ )
und die Laufbedingung sollte auch nicht auf ">=" geprüft werden, sondern nur auf ">", sonst knallt's im letzten Durchlauf, wenn man auf das erste Zeichen jenseits des Strings zugreifen will.
Nö. Die Laufbedingung sollte auf "<" geprüft werden nicht auf ">", ">=", "<=". Sonst geht es ja gleich wieder nicht.
Jetzt haben wir alle Fehler gemacht...
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Richtig, und die Laufbedingung sollte auch nicht auf ">=" geprüft werden, sondern nur auf ">", sonst knallt's im letzten Durchlauf, wenn man auf das erste Zeichen jenseits des Strings zugreifen will.
Stimmt, darauf habe ich auf die Schnelle auch nicht geachtet.
Ich glaube, damit ist es genug der unnötigen Diskussion ;).
MfG
Manko10