MATLAB Answers

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

1 view (last 30 days)
Rahul Raman R
Rahul Raman R on 29 Aug 2019
Edited: 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.

Answers (1)

KSSV
KSSV on 29 Aug 2019
Edited: 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.

Sign in to answer this question.

Tags

Products


Release

R2019a