这个程序试图将列表的内容减去变量'health',想象健康的值是一个对象中的生命力量,列表中的每个数字都是一个破坏性的力量,我试图得到health< = 0的索引。例如,health - theOneList [0] = 2 - 1.1 = .9,因为.9!=< = 0,继续减去。
var wqat = 1.1;
var rat = .2;
var eat = .8;
var baat = 1.2;
var health = 2;
List<double> theOneList = new List<double>();
List<double> theOneList = new List<double>();
theOneList.Add(wqat);
theOneList.Add(rat);
theOneList.Add(eat);
theOneList.Add(baat);
for (int i = 0; i < 4; i++)
{
test.Add(health - theOneList[i]);
Console.WriteLine(test[i]);
}
答案 0 :(得分:2)
答案 1 :(得分:0)
改为使用while循环:
int i = 0;
while(health > 0 && i < theOneList.length){
// keep subtracting
test.add(health - theOneList[i]);
Console.WriteLine(test[i]);
i++;
}
答案 2 :(得分:0)
您可以在for循环中使用简单条件执行此操作。
- (void)layoutSubviews {
[super layoutSubviews];
}
首先,您并不想对迭代器上限值进行硬编码。在循环条件中使用int i = 0;
for(i = 0; i < theoneList.Length && health > 0; i++)
{
health -= theOneList[i];
}
Console.WriteLine(i);
会使您遍历整个列表。
这种方法的工作方式是它将从健康状况中减去列表中的值,直到健康状况不大于零。这将打破循环,留下使健康低于零的值的位置作为.Length
的值。
此外,如果你关心的是你的列表中的值使健康状况达到0或更低,那么就不需要将健康值推回到列表中。