Understanding switch and case expressions
    4 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
a = 'hi';
switch a
case {'hi','hello'}
disp('hi, hello')
case 'hi'
disp('hi')
end
When executing this code, the result is hi, hello. This does not make sense to me. If a = 'hi', then according to the case 'hi' shouldn't the result just be hi. Why is it hi, hello?
0 comentarios
Respuesta aceptada
  Ryan Livingston
    
 el 12 de Mzo. de 2013
        
      Editada: Ryan Livingston
    
 el 12 de Mzo. de 2013
  
      The cases are checked in order. Since a = 'hi' and 'hi' is in the first case, that one is chosen.
Using a cell array:
 case {'hi', 'hello'}
 disp('hi, hello');
means "pick this case if "a" is either 'hi' or 'hello'. It is somewhat equivalent to saying:
 if strcmp(a,'hi') || strcmp(a,'hello')
 disp('hi, hello');
1 comentario
  Shashank Prasanna
    
 el 12 de Mzo. de 2013
				Joe this behavior is explained in the doc:
Más respuestas (0)
Ver también
Categorías
				Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


