Conectar-se
Quem está conectado
37 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 37 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 06/03/2013
Número de Mensagens : 81
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Utilidade do While e Then

em Ter 16 Jul 2013, 12:33
As vezes fico me perguntando:qual a utilidade do While e Then ? Em outras linguagens de programação eu sei,mas em GML não.O WHILE pode ser substituido pelo IF no evento STEP,mas eu queria saber alguma situação em que isso não poderia ocorrer,alguma situação em que o while é realmente necessário.
avatar
Ranking : Sem avaliações
Data de inscrição : 14/04/2011
Número de Mensagens : 691
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Utilidade do While e Then

em Ter 16 Jul 2013, 13:54
É sempre bom evitar o uso de códigos dentro do step, pois consomem processamento.

É por isso que as iterações (for, while, repeat, etc) são úteis.
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 30/07/2011
Número de Mensagens : 928
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 1
Ver perfil do usuáriohttp://luizpontes.tk/

Re: Utilidade do While e Then

em Ter 16 Jul 2013, 15:59
Reputação da mensagem: 100% (1 votos)
O while cria um laço, dessa forma:
Código:
while (algumacoisa) {
código
}
Enquanto algumacoisa foi verdadeiro (maior que 0.5 (eu acho)), então ele vai executar aquele código repetidamente até que algumacoisa seja falso. Não dá pra trocar com o if. Talvez até dê com o for, mas é diferente.

O then é muito pouco usado, é apenas uma forma de "compatibilidade" pra quem veio de outras linguagens de programação. Funciona assim:
Código:
if algumascoisablablabla then
begin
codigos
end
Ele só é compatível quando você usa begine end, não quando você usa as chaves { e }. Ou seja, inútil, basicamente.

Té mais
avatar
Data de inscrição : 06/03/2013
Número de Mensagens : 81
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Utilidade do While e Then

em Ter 16 Jul 2013, 18:19
Se trocar o while pelo if no STEP da na mesma,não ?
Código:

if (algumacoisa=true) {
código
}
avatar
Ranking : Sem avaliações
Data de inscrição : 14/04/2011
Número de Mensagens : 691
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Utilidade do While e Then

em Ter 16 Jul 2013, 18:24
O efeito é o mesmo, massss:

Como eu disse no post anterior escreveu:
É sempre bom evitar o uso de códigos dentro do step, pois consomem processamento.

É por isso que as iterações (for, while, repeat, etc) são úteis.

avatar
Data de inscrição : 06/03/2013
Número de Mensagens : 81
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Utilidade do While e Then

em Ter 16 Jul 2013, 18:26
Tendi sorrindo 
avatar
Data de inscrição : 15/08/2010
Número de Mensagens : 1597
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://spyreserver.16mb.com

Re: Utilidade do While e Then

em Ter 16 Jul 2013, 18:32
aproveitando a duvida do amigo, eu não sabia dessa do while, mesmo que o while esteja num alarm, por exemplo, ele será executado repetidamente? como se fosse um if no step?
avatar
Data de inscrição : 26/09/2008
Número de Mensagens : 890
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Utilidade do While e Then

em Ter 16 Jul 2013, 18:57
Reputação da mensagem: 100% (1 votos)
Na verdade, é beeeem diferente de um if no step. Em códigos e algoritmos (principalmente mais avançados), o while pode ser bastante necessário pra fazer coisas que devem acontecer todo step.

Um exemplo simples que tem na própria ajuda do GM é um código pra colocar um objeto numa posição aleatória vazia:

Código:
while (!place_free(x, y))
{
    x = random(room_width);
    y = random(room_height);
}

Ou seja, equanto não está num lugar vazio, vai pra outro lugar escolhido aleatoriamente. Se você colocasse isso no step, seria totalmente diferente. O objeto ficaria pulando de step em step, sendo que o objetivo é ir de uma vez só.
Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Utilidade do While e Then

em Ter 16 Jul 2013, 19:00
Reputação da mensagem: 100% (1 votos)

"then" é uma palavra-chave herdada de variantes do Basic e do antigo Algol, como o Pascal, por exemplo. Ela quer dizer "então" e serve pra complementar a sintaxe do escopo de uma expressão condicional.

Código:
if (valor = 0) then // se valor = 0 então
begin // início
end // fim

Desde as primeiras versões o Game Maker aceita a sintaxe Pascal. Isso inclui operadores relacionais, lógicos e de atribuição, também.

:= é o mesmo que =
<> é o mesmo que !=
= é o mesmo que ==
and é o mesmo que &&
or é o mesmo que ||
xor é o mesmo que ^^
not é o mesmo que !

Só pra corrigir o que foi dito aí, trocar while por if não consome nem mais, nem menos processamento. São só maneiras diferentes de construir o código. Se vai gastar mais ou menos processamento, depende do que vai ser feito após (ou enquanto) a condição se tornar verdadeira.
avatar
Data de inscrição : 15/08/2010
Número de Mensagens : 1597
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://spyreserver.16mb.com

Re: Utilidade do While e Then

em Ter 16 Jul 2013, 19:45
aata, agora ta intendido... valeu por explicar! precisando é só falar!...
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum