Neuling in einer IT-Welt mit einigen Anfänger-Probleme. Also, ich ging durch ein Tutorial und habe ein Problem gelöst, das ich selbst nicht lösen kann. Der Code ist unten:Java - Wenn Anweisung Probleme - ändern Bedingungen löscht die anderen Aussagen unter
boolean gameOver = true;
int score = 5000;
int levelCompleted = 5;
int bonus = 100;
if(score == 5000)
System.out.println("Your score is 5000");
if(score > levelCompleted){
System.out.println("Score is greater that levelCompleted");
System.out.println("5000 is greater that 5");
System.out.println("Some new text on true condition");
}
if(score<5000){
System.out.println("Score is equal to 5000");
}
else
{
System.out.println("Condition is false");
}
if((score < 5000) && (score > 1000)){
System.out.println("Both conditions are true");
}
else if(score<1000)
{
System.out.println("Else if condition is true");
}
else
{
System.out.println("None of the condtitions are true!");
if(gameOver == true){
int finalScore = score + (levelCompleted * bonus);
System.out.println("Your final score was " + finalScore);
}
if(gameOver == true){
score = 10000;
levelCompleted = 8;
bonus = 200;
int finalScore= score + (levelCompleted * bonus);
System.out.println("Your final score was " + finalScore);
}
System.out.println(score);
}
System.out.println(levelCompleted);
}
}
Der Ausgang des Code oben zeigt die erwarteten Ergebnisse und sie sind:
Your score is 5000
Score is greater that levelCompleted
5000 is greater that 5
Some new text on true condition
Condition is false
None of the condtitions are true!
Your final score was 5500
Your final score was 11600
10000
8
Aber, wenn ich ändern, wenn/else if/else-Anweisung die, wenn die Bedingung von
if ((score < 5000) && (score > 1000))
zu
if((score == 5000) && (score > 1000))
Wie Sie sehen können, habe ich nur von < zu == geändert, und ich bekomme die folgende Ausgabe.
Your score is 5000
Score is greater that levelCompleted
5000 is greater that 5
Some new text on true condition
Condition is false
Both conditions are true
5
Also, was ist mit den anderen zwei if-s unten passiert?
Und wo sind die letzten zwei "stand-alone" system.out.println
-s?
Auch, wo kommt die 5 von jetzt an? Ich nehme an, von levelCompleted
Variable, aber wie?
Vielen Dank im Voraus für Ihre Hilfe und Erklärung!
Ihre Vertiefung prüfen. – Jasper
auch '== true' ist redundant. Es ist wie '* 1' oder' +0'. Beachten Sie, dass das Ergebnis von 'p == wahr 'immer gleich' p 'ist. – Pshemo
Ja, ich weiß, dass wenn (p == wahr) ist das gleiche wie wenn (p), denn wenn standardmäßig erwartet wird, wahr zurückzukehren, aber ich folgte nur die Tutorials Tempo und Stil des Schreibens und als Anfänger es ist viel einfacher so. Die Sache ist, ich habe die offizielle Orakeldokumentation und einige andere respektable Dokumente und Bücher konsultiert und fand keine Antwort auf potentielle Probleme, wie man auf viele if-s, if-s und andere eingeht. – newbie