MATLAB Answers

0

A statement under "for" gets skipped during the last loop

Asked by Rahul Raman R on 29 Aug 2019
Latest activity Edited by KSSV
on 29 Aug 2019
function coded = caesar (v,s)
coded=v;
count=0;
for ii = v+s
count=count+1;
if (ii>126)
ii=32+(ii-126-1);
else if (ii<32)
ii = 126-(32-ii-1);
end
coded(count)=ii;
end
end
The above given code is made for a decoder and an encoder so when i execute it, the code works fine until it reaches the end of the string (v+s) , at the end it seems the variable ii is assigned a value "the right one" but the statement " coded(count)=ii " does not run (the loop skips it the last iteration) , is there something i am missing here.
the input i gave is mentioned below
caesar('~',1)
and coded returns the value '~' instead of ' '

  0 Comments

Sign in to comment.

Tags

Products


Release

R2019a

1 Answer

Answer by KSSV
on 29 Aug 2019
Edited by KSSV
on 29 Aug 2019

YOu are changing the loop index ii inside the if...else statements.......that is now allowed...
function coded = caesar (v,s)
coded=v;
count=0;
for ii = v+s
count=count+1;
jj = ii ;
if (ii>126)
jj = 32+(ii-126-1);
else if (ii<32)
jj = 126-(32-ii-1);
end
coded(count)=jj;
end
end

  0 Comments

Sign in to comment.