Info

Cette question est clôturée. Rouvrir pour modifier ou répondre.

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

1 vue (au cours des 30 derniers jours)
Rahul Raman R
Rahul Raman R le 29 Août 2019
Clôturé : MATLAB Answer Bot le 20 Août 2021
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 ' '

Réponses (1)

KSSV
KSSV le 29 Août 2019
Modifié(e) : KSSV le 29 Août 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

Tags

Produits


Version

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by