Как мне вернуть что-то из метода, чтобы разорвать цикл в C #? - PullRequest
0 голосов
/ 12 января 2019

Я пишу небольшую игру для себя. В этой игре я использую метод, который содержит цикл для генерации чисел в массив символов, которые соответствуют определенному набору критериев для использования в игре. Это делает генерацию чисел, по крайней мере, для моих базовых знаний C # довольно запутанной, и я хотел бы сохранить это в отдельном методе.

Проблема, с которой я столкнулся, заключается в том, что мне нужно создать цикл, который игрок разрывает самостоятельно, нажимая опцию выхода, но если игрок хочет продолжить , он перезапускает цикл, но , но также генерирует цикл. новый номер из другого метода.

Должен ли я вызвать этот метод внутри другого метода? Если да, то как мне это сделать?

public static void method2 ()  method1();

Должен ли я сделать цикл вне игрового метода и, таким образом, сгенерировать новое число? Если так, как я могу вернуть что-то, чтобы выйти из цикла (изменить x на false) из метода void?

do method2(method 1) while (x = true)

Я готов изменить свой метод2, чтобы он не был пустым методом, если у кого-то есть лучший тип для использования.

Если кому-то нужен конкретный код, я могу предоставить ссылку или отредактировать вопрос, чтобы включить его, но он довольно длинный (более 100 строк)!

1 Ответ

0 голосов
/ 12 января 2019

Довольно типичный образец того, что вы описываете, выглядит следующим образом:

bool keepPlaying = true;
while (keepPlaying)
{
    var number = GenerateNumber();
    // ... more code
    keepPlaying = AskIfUserWantsToPlayAgain();
}

Однако для достижения тех же результатов совершенно нормально использовать другие конструкции:

while (true)
{
    var number = GenerateNumber();
    // ... more code
    var keepPlaying = AskIfUserWantsToPlayAgain();
    if(!keepPlaying)
    {
        break; // or `return`, if this is your entire method.
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...