这个程序试图将列表的内容减去变量' health ',假设健康的值是物体中的生命力的数量,列表中的每一个数字都是一种破坏性的力量,我试图得到健康<= 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]);
}发布于 2016-01-14 04:10:53
发布于 2016-01-14 03:48:38
使用while循环来代替:
int i = 0;
while(health > 0 && i < theOneList.length){
// keep subtracting
test.add(health - theOneList[i]);
Console.WriteLine(test[i]);
i++;
}发布于 2016-01-14 03:49:34
您可以在for循环中使用一个简单的条件来完成此操作。
int i = 0;
for(i = 0; i < theoneList.Length && health > 0; i++)
{
health -= theOneList[i];
}
Console.WriteLine(i);首先,您并不想硬编码迭代器的上限值。在循环条件中使用.Length使您能够迭代完整的列表。
它的工作方式是,它将继续从健康列表中减去值,直到健康不超过零为止。这将中断循环,使使运行状态低于零的值的位置与i值相同。
另外,如果您只关心列表中的值将健康状态降到0或更少,那么就不需要将健康值推入列表中。
https://stackoverflow.com/questions/34781372
复制相似问题