#N canvas 43 22 1242 804 12;
#X obj 25 -41 cnv 15 400 40 empty empty Clip-(Ifthen-Elseif): 20 12
0 24 -262144 -66577 0;
#X obj 741 647 moses 10;
#X floatatom 680 574 5 -20 20 0 - - -;
#X text 44 15 Jargões de programação: If... then... \, else... -> Quando
colocamos uma condição "Se" \, especificamos o que fazer no caso daquilo
for verdaeiro \, que seria o "então" / "then".;
#X obj 680 600 moses 0;
#X floatatom 635 685 5 0 0 0 - - -;
#X obj 635 647 moses -10;
#X floatatom 695 683 5 0 0 0 - - -;
#X floatatom 741 683 5 0 0 0 - - -;
#X floatatom 794 682 5 0 0 0 - - -;
#X text 47 73 No caso da condição não ser verdadeira \, temos o "else"
\, que é o que fazer naquele caso. Mas podemos ter outro "if" \, nesse
caso \, que é o ta do "Elseif".;
#X obj 143 242 moses 10;
#X floatatom 97 186 5 -20 20 0 - - -;
#X obj 97 212 moses 0;
#X floatatom 143 270 5 0 0 0 - - -;
#X floatatom 196 297 5 0 0 0 - - -;
#X text 57 150 Com o moses \, seria uma estrutura mais ou menos assim
;
#X text 54 240 then;
#X text 89 269 elseif;
#X text 155 295 then;
#X floatatom 97 240 5 0 0 0 - - -;
#X text 69 188 if;
#X obj 116 520 min 50;
#X obj 116 494 max -50;
#X floatatom 116 467 5 0 0 0 - - -;
#X floatatom 116 549 5 0 0 0 - - -;
#X floatatom 244 456 5 0 0 0 - - -;
#X floatatom 244 556 5 0 0 0 - - -;
#X obj 244 490 expr if($f1 > 50 \, 50 \, $f1);
#X obj 244 518 expr if($f1 < -50 \, -50 \, $f1);
#X text 198 506 =;
#X floatatom 272 205 5 -80 80 0 - - -;
#X obj 272 229 moses -50;
#X msg 272 255 -50;
#X floatatom 332 316 5 0 0 0 - - -;
#X msg 385 287 50;
#X obj 332 255 moses 50;
#X text 184 355 "if < -50 \, then = -50 \, elseif > 50 \, then = 50"
;
#X text 52 404 Agora vamos comparar com outras estruturas. Os patches
abaixo são equivalentes ao de cima:;
#X text 74 587 Assim também forçamos o número a ficar em um registro
de -50 a 50;
#X obj 185 673 clip -50 50;
#X floatatom 185 638 5 0 0 0 - - -;
#X floatatom 185 707 5 0 0 0 - - -;
#X text 278 674 E é exatamente isso que o objeto [clip] faz!;
#X floatatom 246 620 5 0 0 0 - - -;
#X floatatom 291 648 5 0 0 0 - - -;
#X text 333 646 Argumento 2;
#X text 292 619 Argumento 1;
#X text 505 -16 ELSEIF NO EXPR:;
#X floatatom 501 152 5 0 0 0 - - -;
#X floatatom 501 246 5 0 0 0 - - -;
#X text 737 196 =;
#X floatatom 766 166 5 0 0 0 - - -;
#X floatatom 766 224 5 0 0 0 - - -;
#X text 503 9 Os argumentos do if \, no [expr] \, são: condição \,
se verdeiro (ou "then") e se falso ("else"). No caso da condição ser
falsa você pode colocar outro if (ou seja \, um "elseif").;
#X obj 737 353 min 50;
#X obj 737 327 max -50;
#X floatatom 737 300 5 0 0 0 - - -;
#X floatatom 737 382 5 0 0 0 - - -;
#X floatatom 839 309 5 0 0 0 - - -;
#X floatatom 839 369 5 0 0 0 - - -;
#X text 806 339 =;
#X obj 501 186 expr if($f1 > cima \, cima \, $f1);
#X obj 501 214 expr if($f1 < baixo \, baixo \, $f1);
#X obj 766 195 expr if($f1 > cima \, cima \, if($f1 < baixo \, baixo
\, $f1));
#X obj 1027 84 v cima;
#X obj 943 85 v baixo;
#X msg 943 57 -50;
#X msg 1027 56 50;
#X obj 969 24 loadbang;
#X text 503 78 Aqui é como seria o clip programado no [expr] com um
"elseif" \, e com a variável "cima" e "baixo" definindo os registros.
;
#X obj 839 339 expr min(max($f1 \, baixo) \, cima);
#X text 584 258 Dentro de condicionais \, o [expr] também permite outras
condicionais \, e assim podemos fazer a mesma coisa ainda de outro
jeito:;
#X floatatom 800 489 5 0 0 0 - - -;
#X floatatom 800 556 5 0 0 0 - - -;
#X obj 800 519 expr if($f1 > 0 \, if($f1 > 10 \, 100 \, $f1) \, -1)
;
#X text 510 446 O [expr] também permite "if -> then if" \, o que seria
colocar outro if no segundo argumento:;
#X text 801 603 E o [moses] também é bem flexível nesse sentido.;
#X text 851 647 (if --> then if / elseif \, then);
#X connect 1 0 8 0;
#X connect 1 1 9 0;
#X connect 2 0 4 0;
#X connect 4 0 6 0;
#X connect 4 1 1 0;
#X connect 6 0 5 0;
#X connect 6 1 7 0;
#X connect 11 0 14 0;
#X connect 11 1 15 0;
#X connect 12 0 13 0;
#X connect 13 0 20 0;
#X connect 13 1 11 0;
#X connect 22 0 25 0;
#X connect 23 0 22 0;
#X connect 24 0 23 0;
#X connect 26 0 28 0;
#X connect 28 0 29 0;
#X connect 29 0 27 0;
#X connect 31 0 32 0;
#X connect 32 0 33 0;
#X connect 32 1 36 0;
#X connect 33 0 34 0;
#X connect 35 0 34 0;
#X connect 36 0 34 0;
#X connect 36 1 35 0;
#X connect 40 0 42 0;
#X connect 41 0 40 0;
#X connect 44 0 40 1;
#X connect 45 0 40 2;
#X connect 49 0 62 0;
#X connect 52 0 64 0;
#X connect 55 0 58 0;
#X connect 56 0 55 0;
#X connect 57 0 56 0;
#X connect 59 0 71 0;
#X connect 62 0 63 0;
#X connect 63 0 50 0;
#X connect 64 0 53 0;
#X connect 67 0 66 0;
#X connect 68 0 65 0;
#X connect 69 0 67 0;
#X connect 69 0 68 0;
#X connect 71 0 60 0;
#X connect 73 0 75 0;
#X connect 75 0 74 0;
