2013-03-27 4 views
-1

Je dois demander à l'utilisateur une température, k ou K signifie kelvin, c ou C signifie celsius et f ou F signifie Fahrenheit. Comment puis-je mettre tous ceux dans une boucle? Je dois continuer à demander à l'utilisateur jusqu'à ce qu'ils entrent dans l'une des lettres ci-dessus. C'est ce que j'ai jusqu'ici.Matlab, notions de base sur les boucles

tempType = input('What type of temperature would you like to use: ', 's'); 

    value = ['k','K','c','C','f','F']; 

    while strcmp(tempType, value) == 1 

    tempType = input('What type of temperature would you like to use: ', 's'); 

    end 

Répondre

0

Vous voulez (length(tempType)~=1 || length(findstr(tempType,value))==0) être l'état de votre temps

1

Je préfère faire comme ceci pour éviter deux exactement les mêmes lignes (testé R2011b):

AllowedTemperature = {'k','K','c','C','f','F'}; 
SelectedTemperature = ''; 
while ~any(strcmp(SelectedTemperature,AllowedTemperature)) 
    SelectedTemperature = input('What type of temperature would you like to use: ', 's'); 
end 
disp([ 'SelectedTemperature: ' SelectedTemperature ]) 
+0

'~ tout (strcmp (....)) 'pourrait être remplacé par' ~ ismember (SelectedTemperature, AllowedTemperature) ' – erikced