Frage zu meinem Amateur Java Script

privacy

Captain
Registriert
Aug. 2004
Beiträge
3.238
Habe folgenden Code:

Code:
<SCRIPT language="JavaScript">
<!--

function richtig()
{
 alert('Wir haben es geschafft');
 break;
}

function rate()
{
 var x,y,i;
 x = 8;
 y = 4;
 
 for(i=1;i<=4;i++)
	{
	 if(confirm('Ist die Zahl '+x+' richtig?')) richtig();
		else if (confirm('Ist die Zahl größer als '+x+' ?')) x=x+y;
			else x=x-y;
	 y=y/2;
	}
}




// -->
</SCRIPT>

Wenn ich jetzt das "rate()" aufrufen will über einen Button, sagt mir die Java Konsole immer "rate not defined". Wenn ich aber das Unterskript "richtig()" weglasse funktioniert alles. Bitte helft einem Java Nub :) Danke :D

mfg Denis
 
hmm ich will halt das er das Programm abbricht, wenn die if Funktion zutrifft :)
 
den[N]is schrieb:
hmm ich will halt das er das Programm abbricht, wenn die if Funktion zutrifft :)

Er läuft doch dann sowieso raus, also ist das break; Quatsch :)

Setzt du nie {} Klammern? Würde dir und der Übersichtlichkeit gut tun, bei dem Code jetzt nicht, aber bei größeren schon.
 
HTML:
<SCRIPT language="JavaScript">
<!--

function richtig() {
    alert('Wir haben es geschafft');
}

function rate() {
    var x,y,i;
    x = 8;
    y = 4;
 
    for(i=1;i<=4;i++) {
        if(confirm('Ist die Zahl '+x+' richtig?')) {
            richtig();
            return 0;
        }else{
            if(confirm('Ist die Zahl größer als '+x+' ?')) {
                x=x+y;
            }else{
                x=x-y; 
            }
        }
        y=y/2;
    }
}




// -->
</SCRIPT>

Du musst an der Stelle, an der er die function rate() verlassen soll einfach ein return 0; schreiben.

Mfg
KoЯn
 
Zuletzt bearbeitet:
dann werde ich es so machen, aber was ist der Grund dafür das er das Skript nicht findet wenn das richtig() mit drin ist ?
 
Du hast ganz einfach die geschweifte Klammern vergessen. So geht es auch:
HTML:
<SCRIPT language="JavaScript">
<!--

function richtig()
{
 alert('Wir haben es geschafft');
}

function rate()
{
 var x,y,i;
 x = 8;
 y = 4;
 
 for(i=1;i<=4;i++){
	 if(confirm('Ist die Zahl '+x+' richtig?')) {richtig(); return 0;}
         else if (confirm('Ist die Zahl größer als '+x+' ?')) x=x+y;
              else x=x-y;
	 y=y/2;
  }
}




// -->
</SCRIPT>

<body onLoad="rate();"></body>

Gewöhn dir am besten an, bei if-Anweisungen oder Schleifen immer Klammern zu setzen. Auch wenn in den Klammern nur eine Zeile steht. Wenn du dann noch ordentlich einrückst, sieht der Code schon übersichtlicher aus und man findet schneller die Fehler.

Mfg
KoЯn
 
Jetzt bin ich verwirrt :D Wo kommen jetzt die Klammern noch zwingend hin ?


Code:
if(......){bla;}
else if(......){bla;}
else{bla;}

So?
 
Aber nicht alles so in eine Zeile quetschen.

HTML:
if(...) {
    code...
}else{
    if(...) {
        code...
    }else{
        code...
    }
}

Man sollte aber versuchen so verzweigte if-else Strukturen zu vermeiden. Evtl. switch() oder so benutzen.

Mfg
KoЯn
 
ok vielen Dank, das hilft mir schonmal sehr :) Dann werde ich mal weiter machen.

mfg Denis
 
Zurück
Oben