Что это путь D для завершения/выхода из основной функции?D: Как выйти из основного?
import std.stdio;
import core.thread;
void main()
{
int i;
while (i <= 5)
{
writeln(i++);
core.thread.Thread.sleep(dur!("seconds")(1));
}
if (i == 5)
{
writeln("Exit");
return; // I need terminate main, but it's look like break do exit only from scope
}
readln(); // it's still wait a user input, but I need exit from App in previous step
}
Я пытался прибегая к помощи и нашел следующий вопрос D exit statement есть предложение использовать функцию выхода C. Есть ли новые фьючерсы в современном D, которые позволяют сделать это более элегантно?
Ответный заявление в вашем код выйдет из программы. У вас есть одна логика - когда цикл while завершается, i == 6, а не 5. –
@ AdamD.Ruppe, о, вы правы, есть ли способ исправить его во время цикла или только возможное исправление is 'if (i == 6)'? –
Как сказал Адам, 'if (i == 5)' всегда false. Вы можете написать 'if (i == 6)', если вы хотите выполнить ветку 'if'. Или вы намеревались иметь 'if' внутри цикла? Использование оператора post-increment изменяет выходные данные вашей программы, но все равно выходит из цикла с 'i == 6'. –