ich hab bereits unter aufgaben einen quellcode gepostet mit dem ich mich herumplag und jetzt bin ich auf folgendes getsoßen: wenn ich nun schreibe:
Code:
zeichen1 = EprogIO.readWord(); //erstes Wort wird eingelesen
if (anzahl == 2) { //wenn anzahl auf 2 steht.....
zeichen2 = EprogIO.readWord(); //.... wird die zweite Zeichenkette eingelesen...
anzahl=1; //... danach wird anzahl auf 1 gestellt
}
else if (anzahl == 1) { // wenn anzahl auf 1 steht ....
zeichen3 = EprogIO.readWord(); //... wird die dritte Zeichenkette eingelesen...
anzahl=2; //.... und danach anzahl auf 2 zurückgestellt um die nächsten Paare einlesen zu können
if(zeichen1.contains(zeichen2)) { //wenn die erste Zeichenkette die zweite beinhaltet...
ausgabe = zeichen1.replaceAll(zeichen2, zeichen3); //... werden die Vorkommen der zwieten Zeichenkette in der ertsen durch die dritte Zeichenkette ersetzt
}
}
funktioniert das ganze nicht schreib ich aber statt if und else if while sprich das ganze schaut so aus:
Code:
zeichen1 = EprogIO.readWord(); //erstes Wort wird eingelesen
while (anzahl == 2) { //wenn anzahl auf 2 steht.....
zeichen2 = EprogIO.readWord(); //.... wird die zweite Zeichenkette eingelesen...
anzahl=1; //... danach wird anzahl auf 1 gestellt
}
while (anzahl == 1) { // wenn anzahl auf 1 steht ....
zeichen3 = EprogIO.readWord(); //... wird die dritte Zeichenkette eingelesen...
anzahl=2; //.... und danach anzahl auf 2 zurückgestellt um die nächsten Paare einlesen zu können
if(zeichen1.contains(zeichen2)) { //wenn die erste Zeichenkette die zweite beinhaltet...
ausgabe = zeichen1.replaceAll(zeichen2, zeichen3); //... werden die Vorkommen der zwieten Zeichenkette in der ertsen durch die dritte Zeichenkette ersetzt
}
}
na das ist ja einfach,
im ersten Fall wird bei Anzahl 2 das erste if true,
danach kann das zweite if auf keinen Fall mehr drankommen, es ist ja im ELSE!! des ersten if drin,
wird also nur ausgeführt wenn das erste if false ergibt
verwende einfach 2 if ohne else, dann wird beides geprüft und wohl auch beides durchlaufen
Code:
if (anzahl == 2) { //wenn anzahl auf 2 steht.....
zeichen2 = EprogIO.readWord(); //.... wird die zweite Zeichenkette eingelesen...
anzahl=1; //... danach wird anzahl auf 1 gestellt
}
if (anzahl == 1) { // wenn anzahl auf 1 steht ....
zeichen3 = EprogIO.readWord(); //... wird die dritte Zeichenkette eingelesen...
anzahl=2;
[..]
}
erstmals danke! eigentlich ganz logisch - wenn man drüber nachdenkt!
wenn ich das ganz jetzt mit while mach - so wie ich's auch gepostet hab - kann dann irgendein fehler auftreten oder könnte ich das auch verwenden??
gruß da*vinci
macht im Programm keinen gravierenden Unterschied aber wäre aus lesetechnischer Sicht sicherlich störend,
da die Schleife ja immer maximal 1x durchlaufen werden kann, dann ist das if die richtige Wahl