b"\n_START_ARTICLE_\nEstruturas de controle e operadores de Euphoria\n_START_PARAGRAPH_\nEste \xc3\xa9 um anexo que descreve as estruturas de controle e operadores de Euphoria, para ajudar no aprendizado nessa linguagem.\n_START_SECTION_\nEstruturas de controle\n_START_PARAGRAPH_\nEstruturas de controle, em Euphoria, s\xc3\xa3o comandos b\xc3\xa1sicos que s\xc3\xa3o usados para realizar compara\xc3\xa7\xc3\xb5es l\xc3\xb3gicas e repeti\xc3\xa7\xc3\xb5es. H\xc3\xa1 tr\xc3\xaas estruturas de controle em Euphoria: if, while, for.\n_START_SECTION_\nif\n_START_PARAGRAPH_\nA estrutura if, segue o seguinte formato:_NEWLINE__NEWLINE_if vari\xc3\xa1vel1 operador relacional vari\xc3\xa1vel2 then_NEWLINE_   a\xc3\xa7\xc3\xa3o1_NEWLINE_end if_NEWLINE_A estrutura if, ainda pode conter uma exce\xc3\xa7\xc3\xa3o:_NEWLINE__NEWLINE_if vari\xc3\xa1vel1 operador relacional vari\xc3\xa1vel2 then_NEWLINE_   a\xc3\xa7\xc3\xa3o1_NEWLINE_else_NEWLINE_   a\xc3\xa7\xc3\xa3o2_NEWLINE_end if_NEWLINE_E ainda pode conter uma exce\xc3\xa7\xc3\xa3o-condicional:_NEWLINE__NEWLINE_if vari\xc3\xa1vel1 operador relacional vari\xc3\xa1vel2 then_NEWLINE_   a\xc3\xa7\xc3\xa3o1_NEWLINE_elsif vari\xc3\xa1vel1 operador relacional vari\xc3\xa1vel then_NEWLINE_   a\xc3\xa7\xc3\xa3o2_NEWLINE_end if_NEWLINE_Exemplo:_NEWLINE__NEWLINE_if var = 'a' then -- Se var = a ent\xc3\xa3o\xe2\x80\xa6_NEWLINE_   x = 1 -- Atribuir\xc3\xa1 1 a vari\xc3\xa1vel x_NEWLINE_elsif var = 'b' or var = 'B' then -- Caso contr\xc3\xa1rio, se var for = 'b' ou 'B'_NEWLINE_   x = 2_NEWLINE_else -- Caso contr\xc3\xa1rio:_NEWLINE_   x = -1_NEWLINE_end if -- Termina if_NEWLINE_O exemplo anterior testa se a vari\xc3\xa1vel \xc3\xa9 igual a a. Se n\xc3\xa3o for, testa se a vari\xc3\xa1vel \xc3\xa9 igual a b ou B. Se nenhuma das condi\xc3\xa7\xc3\xb5es for verdadeira, retornar\xc3\xa1 o valor (-1), e encerrar\xc3\xa1 a condi\xc3\xa7\xc3\xa3o.\n_START_SECTION_\nwhile\n_START_PARAGRAPH_\nA estrutura while, segue o seguinte formato:_NEWLINE__NEWLINE_while vari\xc3\xa1vel1 operador relacional vari\xc3\xa1vel2 do_NEWLINE_   a\xc3\xa7\xc3\xa3o1_NEWLINE_end while_NEWLINE_Ela continua sendo executada, at\xc3\xa9 que a condi\xc3\xa7\xc3\xa3o torne-se falsa. Exemplo:_NEWLINE__NEWLINE_while var > 0 do -- Enquanto var for maior que 0_NEWLINE_   x = 2 * 2 -- x \xc3\xa9 igual \xc3\xa1 2 vezes 2 (4)_NEWLINE_end while -- Termina o while\n_START_SECTION_\nfor\n_START_PARAGRAPH_\nA estrutura for, segue o seguinte formato:_NEWLINE__NEWLINE_for vari\xc3\xa1vel = valor1 to valor2 do_NEWLINE_   a\xc3\xa7\xc3\xa3o_NEWLINE_end for_NEWLINE_A estrutura \xc3\xa9 executada at\xc3\xa9 que a condi\xc3\xa7\xc3\xa3o torne-se falsa. Enquanto for verdadeira, aumentar\xc3\xa1 o valor de vari\xc3\xa1vel com o valor de \xe2\x80\x9cvalor1\xe2\x80\x9d at\xc3\xa9 chegar ao seu limite, o \xe2\x80\x9cvalor2\xe2\x80\x9d. Enquanto for verdadeira, ir\xc3\xa1 executar a a\xc3\xa7\xc3\xa3o programada. Exemplo:_NEWLINE__NEWLINE_for var = 1 to 10 do -- var ir\xc3\xa1 aumentar em 1 at\xc3\xa9 10_NEWLINE_   ? var -- P\xc3\xb5e na tela o conte\xc3\xbado de var_NEWLINE_end for -- Termina for_NEWLINE_O exemplo acima, aumenta o valor de var em 1 at\xc3\xa9 10, e executa a fun\xc3\xa7\xc3\xa3o ? var, que manda o valor de var para a tela. O mesmo exemplo pode ser escrito, substituindo os n\xc3\xbameros, por vari\xc3\xa1veis que contenham um valor n\xc3\xbamerico. O programa ir\xc3\xa1 produzir:_NEWLINE__NEWLINE_12345678910_NEWLINE_Diferente de todas as estruturas em Euphoria, a for s\xc3\xb3 usa uma vari\xc3\xa1vel que ainda n\xc3\xa3o foi declarada (apenas a primeira vari\xc3\xa1vel da estrutura, no caso var).\n_START_SECTION_\nOperadores\n_START_PARAGRAPH_\nOperadores, em Euphoria, s\xc3\xa3o s\xc3\xadmbolos especiais, que servem para fazer a\xc3\xa7\xc3\xb5es matem\xc3\xa1ticas, ou compara\xc3\xa7\xc3\xb5es l\xc3\xb3gicas.\n_START_SECTION_\nOperador de atribui\xc3\xa7\xc3\xa3o\n_START_PARAGRAPH_\nServem para atribuir valores a vari\xc3\xa1veis j\xc3\xa1 declaradas. Exemplo:_NEWLINE__NEWLINE_atom a -- Declara a vari\xc3\xa1vel a_NEWLINE_a = 1 -- Atribui o valor 1, \xc3\xa0 vari\xc3\xa1vel a_NEWLINE_Vari\xc3\xa1veis comuns n\xc3\xa3o podem ter valores atribu\xc3\xaddos \xc3\xa0 mesma, sem antes serem declaradas e, com exce\xc3\xa7\xc3\xa3o das vari\xc3\xa1veis constants, tamb\xc3\xa9m n\xc3\xa3o podem receber uma atribui\xc3\xa7\xc3\xa3o durante sua declara\xc3\xa7\xc3\xa3o, diferente de C++._NEWLINE__NEWLINE_atom a = 1 -- Forma incorreta_NEWLINE_O exemplo acima gera um erro._NEWLINE__NEWLINE_atom a -- Forma correta_NEWLINE_a = 1_NEWLINE_O segundo exemplo mostra a forma correta de se declarar uma vari\xc3\xa1vel e atribuir um valor a ela.\n_START_SECTION_\nOperadores aritm\xc3\xa9ticos\n_START_PARAGRAPH_\nA linguagem possui operadores aritm\xc3\xa9ticos, que servem para realizar opera\xc3\xa7\xc3\xb5es aritm\xc3\xa9ticas. Em Euphoria, os seguintes operadores aritm\xc3\xa9ticos est\xc3\xa3o dispon\xc3\xadveis: adi\xc3\xa7\xc3\xa3o (+), subtra\xc3\xa7\xc3\xa3o (-), mutiplica\xc3\xa7\xc3\xa3o (*), divis\xc3\xa3o (/). Ela ainda suporta sinais un\xc3\xa1rios (negativo e positivo)._NEWLINE__NEWLINE_? 3 + 5_NEWLINE_No exemplo acima, o interpretador ir\xc3\xa1 retornar 8, que \xc3\xa9 o resultado dessa opera\xc3\xa7\xc3\xa3o aritm\xc3\xa9tica. O sinal de interroga\xc3\xa7\xc3\xa3o (?) \xc3\xa9 o mesmo que a fun\xc3\xa7\xc3\xa3o print(1,), que retorna um valor em forma num\xc3\xa9rica._NEWLINE__NEWLINE_? 8 * 3_NEWLINE_O segundo exemplo retorna 24, isto \xc3\xa9, 8 vezes 3 (8*3)."