The symbol & is the and logical operator. You can use it for multiple conditions in your while loop.
while (user_input ~= 256 & user_input ~= 128 & user_input ~= 64)
prompt = 'Please enter one of the listed gray levels (256, 128, 64, 32, 16, 8, 4, 2). ';
user_input = input(prompt);
end
As beaker pointed out, what you ask is to ask for input as long as it is not one of the following values : 256, 128 or 64. Using the or logical operator would mean that user_input should be 256, 128 and 64 at the same time to break the loop.
You can also use ismember.
conditional_values = [256, 128 , 64]
while ~ismember(user_input, conditional_values)
prompt = 'Please enter one of the listed gray levels (256, 128, 64, 32, 16, 8, 4, 2). ';
user_input = input(prompt);
end
An other way to go, proposed by Luis Mendo, is to use any
conditional_values = [256, 128 , 64]
while ~any(user_input==conditional values)
prompt = 'Please enter one of the listed gray levels (256, 128, 64, 32, 16, 8, 4, 2). ';
user_input = input(prompt);
end
user_input == conditional_value returns an array composed of 1s and 0s depending on if values of conditional_values match with user_input. Then any finds if there is at least one 1 on this array. Then we apply ~ which is the not operator.