La sentencia switch es muy útil si tenemos una serie larga de funciones que queremos que se ejecuten cuando el valor de una variable coincida con el que le indiquemos. Su sintaxis sería la siguiente:
switch(selector){
case A:
funcion_1();
break;
case B:
funcion_2();
break;
case C:
funcion_3();
break;
deafult: //opcional
funcion_defecto();
break;
}
Así, si el valor de la variable "selector" es "A", ejecuta funcion_1; si el valor es "B", ejecuta funcion_2, etc. Si el valor no es ninguno de los especificados, se ejecutará la función establecida por defecto.
Un ejemplo sería el siguiente:
1 int contador = 0;
2
3 void setup() {
4 size(400, 400);
5 background(0);
6 stroke(255);
7 fill(0);
8 rectMode(CENTER);
9 }
10
11 void draw() {
12 contador++;
13 switch (contador) {
14
15 case 1 : //si 'contador' es igual a 1
16 background(0);
17 ellipse(width/2, height/2, 300, 300);
18 delay(500);
19 break;
20 case 2 : //si 'contador' es igual a 2
21 rect(width/2, height/2, 300, 300);
22 delay(500);
23 break;
24 default: //para cualquier otro valor de 'contador'
25 contador = 0; //reinicia 'contador'
26 delay(500);
27 break;
28 }
29 }
Cuyo resultado sería:
NOTA: La sentencia rectMode (también existe ellipseMode) modifica la localización del punto de inserción de los rectángulos dibujados en Processing. El modo establecido por defecto es rectMode(CORNER), que establece como punto de inserción la esquina superior izquierda del rectángulo. La opción rectMode(CENTER) establece como punto de inserción el centro del rectángulo. En ambos casos, para dibujar el rectángulo, habrá que indicar primero las coordenadas del punto de inserción y después la anchura y la altura del rectángulo. Una tercera opción es utilizar la sentencia rectMode(RADIUS), para la que se establece como punto de inserción el centro de la figura pero con la que habrá que indicar después los valores de anchura/2 y altura/2 del rectángulo en cuestión.
Si usamos la opción rectMode(CORNERS), los dos primeros parámetros de rect() se referirán a las coordenadas de la primera esquina y los dos segundos, a las coordenadas de la esquina opuesta.
TAREA
Práctica 14. Realiza un programa utilizando la sentencia switch en el que:
a) Si no pulsas ningún botón del ratón, dibuje circunferencias rojas sobre fondo blanco al moverlo, dejando rastro de ellos.
b) Si mantienes pulsado el botón izquierdo del ratón, dibuja circunferencias azules, sin borrar las ya dibujadas, y dejando rastro.
c) Si mantienes pulsado el botón derecho del ratón, dibuja circunferencias amarillas, sin borrar las ya dibujadas y dejando rastro.
d) Si pulsas el botón central, borra todos los dibujos.