Info

此问题已关闭。 请重新打开它进行编辑或回答。

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

1 次查看(过去 30 天)
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 ' '

回答(1 个)

KSSV
KSSV 2019-8-29
编辑:KSSV 2019-8-29
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

标签

产品


版本

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by