MATLAB中for循环和while循环,当步进为小数时得到的结果不一致。
%%
clc; close all;
% for循环,整数步进
sum=0;
for n=1:1:2
sum=sum+1;
end
fprintf('\n[for] step by int, sum=%d, n=%d\n', sum, n);
% while循环,整数步进
sum=0;
n=1;
while n<=2
sum=sum+1;
n=n+1;
end
fprintf('\n[while] step by int, sum=%d, n=%d\n', sum, n);
% for循环,小数步进
sum=0;
for n=1:0.1:2
sum=sum+1;
end
fprintf('\n[for] step by double, sum=%f, n=%f\n', sum, n);
% while循环,小数步进
sum=0;
n=1;
while n<=2
sum=sum+1;
n=n+0.1;
end
fprintf('\n[while] step by double, sum=%f, n=%f\n', sum, n);
输出结果:
[for] step by int, sum=2, n=2
[while] step by int, sum=2, n=3
[for] step by double, sum=11.000000, n=2.000000
[while] step by double, sum=10.000000, n=2.000000