我对C ++循环周期有一些问题,这是我的代码:
for (int ii = 1; ii <= 4; ii++)
{
if (ii==1)
{
ro = 4;
ratio = 0.85;
}
if (ii == 2)
{
ro = 6;
ratio = 0.8;
}
if (ii == 3)
{
ro = 8;
ratio = 0.9;
}
if (ii == 4)
{
ro = 10;
ratio = 0.5;
}
function(ro,ratio);
if (ii = 1)
{
cir4 = cir.clone();
k4 = k3.clone();
}
if (ii = 2)
{
cir6 = cir.clone();
k6 = k3.clone();
}
if (ii=3)
{
cir8 = cir.clone();
k8 = k3.clone();
}
if (ii = 4)
{
cir10 = cir.clone();
k10 = k3.clone();
}
}
我的function(ro,ratio)
工作正常,其中每对ro比率在循环for
之外,并返回每对Mat cir=function(ro , ratio)
的不同结果(在这种情况下为cir4 # cir6 # cir8 # cir10
);但是当我把它放在循环中时,它总是返回相同的结果:cir4 = cir6 = cir8 = cir10 = function(ro = 4 , ratio = 0.85)
我不知道为什么。我误解了循环for
在C ++中是如何工作的吗?
答案 0 :(得分:12)
使用==
而不是=
进行比较。
你在if
语句的第一个块中已经正确,但不是第二个。