Matlab和C ++中while循环之间的区别

Mar*_*ona 1 c++ matlab

与Matlab玩了一段时间后,我不禁注意到while循环的执行方式似乎不同于c ++。例如,对于这部分Matlab代码,

>> i=1;
>> while i>=1 && i<10
fprintf('%i')
i=i+2
end
Run Code Online (Sandbox Code Playgroud)

计算机坚持要求返回字符串3,5,7,9,11。另一方面,C ++中的相同程序

int i=1;

while (i>=1  && i<10)
{
    cout << i <<endl;
    i=i+2;
} 
Run Code Online (Sandbox Code Playgroud)

给出字符串1,3,5,7,9。两种语言在这方面是否确实有所不同,或者我做错了什么?

Mat*_*ieu 6

您的matlab代码不正确:

  • fprintf(%i)没有打印任何内容,因为您告诉fprintf您要打印一个int(%i),但是您什么也没打印。
  • i=i+2显示结果(不需要的结果)。

正确的Matlab代码应为:


i=1;
while i>=1 && i<10
    % display i
    fprintf('%d', i)

    % compute next i without displaying it (notice the `;`)
    i=i+2;
end
Run Code Online (Sandbox Code Playgroud)