Logical operators not working inside while loop

1 次查看(过去 30 天)
I have wrote conditions inside while loop using logical operators.
my program is
p=12;
while (p~=1) | (p~=2)
imshow(image.jpg);
end
but an infinite loop is running
I am unable to find the bug in this. Please help.

采纳的回答

Sean de Wolski
Sean de Wolski 2013-1-29
Well you never change p so it is always 12!
x = 10;
while x~=1
x = x-1;
disp(x)
end
Alternatively you can use a for-loop:
for ii = 10:-1:1
disp(ii);
end

更多回答(2 个)

Jan
Jan 2013-1-29
Yes, of course this is in infinite loop: The value of p does not change inside the loop.

Niladri
Niladri 2013-1-31
Thank you Sean de Wolski & Jan Simon.
Now I have wrote a program which is actually required for my project.
I am taking an analog output (as trigger) from DAC. My codes will start working only when matlab receives trigger from DAC.
Codes are:
p=0;
while (p~=128|p~=192) %2 types of output released by DAC%
p=fread(s,1);
if (p==128)
imshow('x.jpg'); pause(1); imshow('z.jpg'); pause(2);
elseif (p==192
imshow('y.jpg'); pause(1); imshow('z.jpg'); pause(2);
end
end
According to the logic used in the previous program this also should run infinite times and that I need. But it is terminating after some time automatically. Please help.

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by