Код ниже - это фрагмент рабочего кода, который предназначен для игры в лабиринте замка в C#. Структура if else только правильно печатает dun.roomend == true). Буксировка. В настоящее время отображается, когда должен отображаться файл tre.isExit. Файл tre.isExit не отображается вообще. Я предрек текущие переменные как:если инструкция else не работает
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.....");
}
Посмотрите на свой код и пройдите через него с помощью отладчика и обратите внимание на значения bool, которые просто смотрят на ваш код, он всегда будет первым и последним. – MethodMan
Я вижу, что на ваш вопрос был дан ответ, но только совет по вашему синтаксис. При оценке значений bool в операциях if нет необходимости использовать оператор '=='. Вместо этого в вашем случае вы можете просто написать 'if (dun.roomEnd) {}', и это будет делать то же самое, что и 'if (dun.roomEnd == true) {}'. Аналогично, чтобы проверить, является ли это ложным, используйте '!' (Известный как нет) перед вашей переменной bool. Поэтому важно, чтобы if (! Dun.roomEnd) 'был таким же, как' if (dun.roomEnd == false) '. –
Thanx для этого, это было очень полезно. Все еще борется с ответом, так как его не работает –