You are on page 1of 5

UNMSM-EAP INGENIERA QUMICA

switch
switch ejecuta ciertas sentencias basadas en el valor de una variable o expresin. Su forma bsica es

switch expresin (escalar o cadena)


case valor1
sentencias
% Se ejecutan si la expresin es valor1
case valor2
sentencias
% Se ejecutan si la expresin es valor2
.
.
.
otherwise
sentencias
% Se ejecutan si la expresin no es igual a ninguno de los casos
end
Este bloque consiste de:
La palabra switch seguida por una expresin que se evala.

Cualquier nmero de grupos case. Estos grupos consisten de la palabra case seguida por un valor posible para la
expresin, todo en una sola lnea. Las lneas siguientes contienen las sentencias que se ejecutarn cuando se da
un valor a la expresin. stas solo pueden ser sentencias vlidas en MATLAB, incluyendo otro bloque switch. La
ejecucin de un grupo case termina cuando MATLAB encuentra la siguiente sentencia case o la sentencia
otherwise. Solo se ejecutar el primer case que corresponda.

Un grupo otherwise opcional. ste consiste de la palabra otherwise, seguida por las sentencias que se ejecutan si
el valor de la expresin no es apropiada para ninguno de los grupos case precedentes. La ejecucin del grupo
otherwise termina con la sentencia end.

Una sentencia end.

switch funciona comparando la expresin de entrada con los valores de cada case. En expresiones numricas, una
sentencia case es verdadera si (valor == expresin). En expresiones de cadenas de caracteres, una sentencia case
es verdadera si strcmp(valor,expresin).
El cdigo siguiente muestra un ejemplo simple de la sentencia switch. Chequea si la variable input_num es igual a
ciertos valores. Si input_num es -1, 0, 1, la sentencia case despliega el valor como un texto en la pantalla. Si
input_num no es ninguno de esos valores, se ejecuta la sentencia otherwise y el cdigo despliega el texto 'otro valor.
switch input_num
case -1
disp('es negativo');
case 0
disp('cero');
case 1
disp('es positivo');
otherwise
disp('otro valor');
end

PROFESOR: HEBER HELFER

UNMSM-EAP INGENIERA QUMICA


switch puede manejar condiciones mltiples en una sola sentencia case encerrando la expresin case entre llaves
como un arreglo de celda.
switch var
case 1
disp('1')
case {2,3,4}
disp('2 3 4')
case 5
disp('5')
otherwise
disp('algo ms')
end

PROFESOR: HEBER HELFER

UNMSM-EAP INGENIERA QUMICA

switch-ejercicios
clear
disp('Programa que envia un mensaje de acuerdo al valor de');
disp('una variable entera.');
n =input('Ingrese un valor de 1 a 5:');
if n==1
disp('Usted digit el nmero 1');
elseif n == 2
disp('Usted digit el nmero 2');
elseif n == 3
disp('Usted digit el nmero 3');
elseif n == 4
disp('Usted digit el nmero 4');
elseif n == 5
disp('Usted digit el nmero 5');
else
disp('Usted digit un nmero fuera del rango.');
end
clc
clear
precio = input('Introduzca el precio del tem:');
tipo = input('Ingrese el tipo de tem:', 's');
switch tipo
case {'comida','medicina'}
impuesto = 0;
case 'lujo'
impuesto = .1*precio;
otherwise
impuesto = .06*precio;
end
costo = precio + impuesto;
disp('El costo total es');
disp(costo);

PROFESOR: HEBER HELFER

UNMSM-EAP INGENIERA QUMICA

Suponga que queremos escribir un programa de calificaciones que tomar una nota entre 0 y 10 y
entregar la calificacin de acuerdo a la siguiente regla.
Si la nota es 9 o 10 la calificacin es A
Si la nota es 8 la calificacin es B
Si la nota es 5, 6 o 7 la calificacin es C
Si la nota es 4 la calificacin es D
Si la nota es menor de 4 la calificacin es F
Tambin queremos estar seguros de que la nota que se entrega sea un valor entre 0 y 10.
clear
x = input('Ingrese la nota de la prctica:');
switch x
case {9,10}
disp('La calificacin es A')
case 8
disp('La calificacin es B')
case {5,6,7}
disp ('La calificacin es C')
case 4
disp('La calificacin es D')
case {0,1,2,3}
disp('La calificacin es F')
otherwise
disp('Esta no es una calificacin vlida')
end

Agregando un ciclo repetitivo while podemos repetir el ingreso de notas hasta que se digite el indicador 99.

clear
x = 0;
while x ~= 99
x = input('Ingrese la nota de la prctica:');
switch x
case {9,10}
disp('La calificacin es A')
case 8
disp('La calificacin es B')
case {5,6,7}
disp ('La calificacin es C')
case 4
disp('La calificacin es D')
case {0,1,2,3}
disp('La calificacin es F')
case 99
disp('Fin del programa.')
otherwise
disp('Esta no es una calificacin vlida')
end
end

PROFESOR: HEBER HELFER

UNMSM-EAP INGENIERA QUMICA


Programa en Matlab que calcula la presin de un gas usando la ecuacin de los gases ideales o la
ecuacin de van der Waals.
Ecuacin de los gases ideales

Ecuacin de Van der Waals

clc
clear
r=0.08206;
disp('Que operacion desea ejecutar?');
disp('1. Calculo de la presin usando la ecuacin de gases ideales');
disp('2. Calculo de la presin usando la ecuacin de van der waals');
disp('3. Terminar');
operacion=input('Digite uno, dos o tres:');
switch operacion
case 1
v=input('ingrese el volumen (litros) : ');
n=input('Ingrese el nmero de moles :');
t=input('ingrese la temperatura(Celsius) : ');
fprintf('la presin es %f atmsferas.\n',n*r*(t+273.2)/v);
case 2
disp('Deber elegir el gas de una lista: ');
disp('1. Argon');
disp('2. Acetileno');
disp('3. Aire');
disp('4. Amoniaco');
disp('5. Dioxido de Carbono');
gas=input('Elija uno de ellos( 1-5) : ');
switch gas
case 1
a=1.35;
b=0.0323;
case 2
a=4.37;
b=0.0512;
case 3
a=1.33;
b=0.0366;
case 4
a=4.19;
b=0.0373;
case 5
a=3.6;
b=0.0428;
otherwise
disp('Digite valores del 1 a 5\n');
end
v=input('ingrese el volumen (litros) : ');
n=input('Ingrese el numero de moles :');
t=input('ingrese la temperatura(Celsius) : ');
fprintf('La presin es %f atmsferas.\n', r*(t+273.2)/(v-b)-a/(v*v));
case 3
disp('Fin del programa\n');
otherwise
disp('Error. Digite 1 , 2 3 ');
end
PROFESOR: HEBER HELFER

You might also like