Algorythmus in JavaScript
Hi,
Gibt es wie in anderen sprachen auch Befehle wie goto?
Also zum Beispiel:
if (i=3)
goto gleichdrei();
else
goto wenigerodermehralsdrei();
Geht das oder gibs alternativen?
mfg
TByte
Antwort schreiben
Antwort 1 von DeluxeStyle vom 25.04.2020, 19:29 Options
wenn du deine Funktionen definiert hast, dann kannst sie ganz einfach aufrufen
if (i=3)
gleichdrei();
else
wenigerodermehralsdrei();
aber ein Algorythmus ist das ja ned gerade
Antwort 2 von TByte vom 25.04.2020, 19:38 Options
Und nach ablauf von gleichdrei() wird nicht wieder zur alten Funktion zurückgekehrt wie z.B.:
function bsp() {
alert("Hallo!");
zweihallo();
alert("Nix mehr Hallo!");
}
function zweihallo() {
alert("Hallo Hallo!");
}
Jetzt soll Nixhallo nicht mehr erscheinen, sondern gleich nach zweihallo() das Script beendet werden. Weil in anderen Sprachen wird wieder zurückgekehrt...
mfg
TByte
Antwort 3 von katy vom 25.04.2020, 23:25 Options
Hallo TByte,
was hindert dich daran, deinen Code einfach auszuprobieren?
Aber um deine ursprüngliche Frage zu beantworten: es gibt keine Sprungbefehle wie goto in JavaScript.
katy
Antwort 4 von Fassy91 vom 26.04.2020, 19:43 Options
bau doch sowas :
function decide(zahl)
{
if (zahl == 3)
{
zahldrei();
return null;
}
else
{
wenigerodermehralsdrei();
return null;
}
}
kommt doch darauf hinaus das die funktion aufgerufen wird und dann der script abbricht.
Antwort 5 von katy vom 27.04.2020, 12:16 Options
Hallo Fassy91,
nimm's mir nicht übel, aber beide return null in deinem Quellcode dürften überflüssig sein (null sowieso).
Das Problem bei der ganzen Frage ist, dass TByte nicht mal erklärt hat, wozu er das braucht. Und offensichtlich hat er es immer noch nicht geschafft, wenigstens einmal ein JavaScript-Tutorial durchzuarbeiten, denn solche Fragen zur JavaScript-Struktur sind wirklich Basiswissen. So jetzt muss ich aber aufhören, denn Ohrfeigen-für-TByte-Beiträge gibts indessen mehr als genug.
katy
Antwort 6 von TByte vom 27.04.2020, 18:02 Options
Ich habs jetzt probiert, und es kommt nochmal zurück. Wie kann ich das vermeiden? Hab schon GANZ SELFHTML durchwühlt...
Antwort 7 von Supermax vom 27.04.2020, 18:24 Options
Ein Konstrukt wie "goto" gibt es in JavaScript (wie in den meisten modernen, objektorientierten Sprachen) nicht.
Wenn du verhindern willst, daß der Code nach dem Funktionsaufruf weiter ausgeführt wird, kannst du z.B. den kompletten Anweisungsblock in den entsprechenden if... else... Block packen. Ohne genaue Kenntnis dessen, was du eigentlich erreichen willst, ist es allerdings schwierig, dir genauere Hilfestellungen zu geben.
Antwort 8 von Rangoo vom 27.04.2020, 18:25 Options
Gar nicht. Wieso auch?
Antwort 9 von TByte vom 27.04.2020, 21:17 Options
Ich wollte etwas, das Bilder in einem Verzeichniss mit 2 Buttons wechselt. Ich hab die Bilder 1.jpg, 2.jpg, 3.jpg, 4.jpg und 5 jpg.
jetzt so
function weiter() {
i=2;
j=".jpg";
b=i+j;
document.bild.src=b;
}
Soweit, sogut.
Aber wenn ich noch, als Beispiel, i++ hinschreibe, wirkt das ja nicht, da nach der Rückkehr i wieder 2 ist. Schleifen ergeben eine Fehlfunktion. Also ist meine einzige chance, eine if-Abzweigung zu erzeugen, die den Wert von i erfragt und wenn dieser kleiner ist als document.bild.src, den erhöht, und zwar so lange, bis der Wert größer ist.
Dafür brauch ich das.
mfg
TByte
Antwort 10 von katy vom 27.04.2020, 21:19 Options
Hallo TByte,
bitte durchwühle nicht SelfHTML, sondern durcharbeite es! Und lies alle Tipps, die dir hier gegeben werden. Mit dem Stichwort return von Fassy91 kämst du zB auf eine Möglichkeit, Funbktionen vorzeitig zu verlassen. Wobei ich bislang aber keinen Sinn dafür bei deinem Beispielcode sehe, denn ein Weglassen der alerts würde das gleiche bewirken (weshalb ich die return in Fassy91s Beispiel auch als überflüssig bezeichnet habe).
Nochmal im Klartext die Frage: was willst du bezwecken?
katy
Antwort 12 von Rangoo vom 27.04.2020, 21:47 Options
Mit der Hilfestellung von Supermax solltest du zu einer Lösung kommen. Wenn du dir in einer globalen Variable merkst, welches Bild gerade aktuell ist, musst du in den Funktionen nur die Variable erhöhen / verringern
var bild = 1;
var bilderZahl = 5;
function zurueck() {
i = (i + bilderZahl - 1) % bilderZahl;
document.bild.src = i + ".jpg";
}
function weiter() {
i = (i + 1) % bilderZahl;
document.bild.src = i + ".jpg";
}
Antwort 13 von TByte vom 27.04.2020, 21:54 Options
und sollte ich in oder ausserhalb der funktion inkrementieren/dekrementieren?
Antwort 14 von TByte vom 27.04.2020, 21:59 Options
Zitat:
Änderungen, die du in der Funktion am Wert von i vornimmst, bleiben in dem Fall erhalten.
Sorry, hab ich übersehen *schäm*
mfg
TByte
Antwort 15 von TByte vom 28.04.2020, 17:35 Options
Wie kann ich, als Beispiel, document.Aufgabe.Eingabe.value von einer Zeichenkette in Zahlen umwandeln? also folgendes:
if (document.Aufgabe.Eingabe.value != [i]Zahlen[/i]) {
alert("Ungültige Eingabe!");
} else {
[i]mach document.Aufgabe.Eingabe.value zu Zahlen[/i];
}
Die Probleme hab ich kursiv gemacht. Wär froh für Hilfe!
mfg
TByte
Antwort 16 von Supermax vom 28.04.2020, 17:43 Options
um eine Zeichenkette in ein zahl umzuwandeln, bietet JavaScript die Funktion parseInt() (wandelt in ganze Zahl um) bzw. parseFloat() (wandelt in eine Gleitkommazahl um).
Um alle zeichen, die keine gültigen Ziffern sind, aus einer Zeichenkette zu entfernen, kannst du z.B. reguläre Ausdrücke (regular expressions, RegEx) verwenden - näheres findest du auf SelfHTML oder bei Google.
Antwort 18 von TByte vom 03.05.2020, 12:33 Options
Ich hab das Gefühl, ich hab schonmal sowas gefragt, aber trotzdem:
mit Javascript etwas in die Zwischenablage tun, ob und wie geht das?
mfg
TByte
Antwort 19 von Supermax vom 03.05.2020, 13:01 Options
Einfach (also mit ein paar Methodenaufrufen) geht das nur mit dem Internet Explorer; Mozilla (Firefox) erfordern, daß der User manuell etwas an seinen Einstellungen ändert, keine Ahnung wie es bei anderen Browsern (Opera, Safari, Konqueror etc.) gehandhabt wird.
Antwort 20 von katy vom 03.05.2020, 17:49 Options
Hallo TByte,
JavaScript hat normalerweise keinen Zugriff auf die Zwischenablage. Dass das im IE anders ist, ist eine Sicherheitslücke des IE, dass es im FF auch unter bestimmten Umständen möglich sein soll, spricht nicht gerade für den FF. In allen anderen Browsern geht's nicht.
Wozu möchtest du überhaupt etwas in die Zwischenablage schieben?
katy