Der folgende Code ist ein Ausschnitt aus einem Arbeitscode, der für ein Schloss-Labyrinth-Spiel in C# steht. Die if else-Struktur druckt nur korrekt dun.roomend == true). Tow.roomEnd zeigt jetzt an, wann tre.isExit angezeigt werden soll. Der tre.isExit wird überhaupt nicht angezeigt. Ich habe die aktuellen Variablen wie erklärt:Wenn die Else-Anweisung nicht funktioniert
public bool isExit;
public bool deadEnd;
public bool roomEnd;
tre.isExit = true;
dun.deadEnd = true;
tow.roomEnd = true;
if (dun.roomEnd == true)
{
Console.WriteLine("You've fallen into the Dungeons of the Dead. Try again");
return;
}
if (tow.roomEnd == true)
{
Console.WriteLine("You been caught by the Kings guard and have been placed in the tower for life.Try again");
return;
}
else if (tre.isExit == true)
{
Console.WriteLine("You have found the treaure... now run!!");
return;
}
else
{
Console.WriteLine("Too scared.....");
}
schauen Sie sich Ihren Code an und durchlaufen Sie ihn mit dem Debugger und achten Sie auf die Bool-Werte nur auf Ihren Code schaut es immer die erste Wenn und Rückkehr .. – MethodMan
Ich sehe Ihre Frage wurde aber nur ein Tipp auf Ihre beantwortet Syntax. Bei der Bewertung von Bool-Werten in if-Anweisungen muss der Operator "==" nicht verwendet werden. In Ihrem Fall können Sie einfach 'if (dun.roomEnd) {}' schreiben, und das wird dasselbe tun wie 'if (dun.roomEnd == true) {} '. Um zu überprüfen, ob es falsch ist, verwenden Sie vor Ihrer bool-Variable ein '!' (Bekannt als nicht). So essentiell 'if (! Dun.roomEnd)' ist das gleiche wie 'if (dun.roomEnd == false)'. –
Danke dafür, es war wirklich hilfreich. Immer noch mit der Antwort zu kämpfen, da es nicht funktioniert –