Мне нужно найти объекты, которые проходят определенный тест, и среди всех объектов, прошедших первый тест, тот, который имеет самое низкое значение в другом тесте. Скажем, мне нужно найти шведскую женщину с самым низким счетом в Тетрисе, от выборки людей (при условии, что все играют в Тетрис (конечно, они есть)).Найти минимальное значение в цикле for: Как инициализировать переменную сравнения?
Я, очевидно, делаю цикл for, и делаю тесты, сравнивая оценки Tetris с самым низким счетом до сих пор. Но каков должен быть счет, чтобы сравнить первый?
Обычно я мог бы просто взять первый и сравнить все с этим, но они тоже должны пройти первый тест. Я мог бы также принять произвольно большое число, но это просто неправильно.
Я мог бы также сделать две петли и просто собрать всех шведских женщин в первом раунде, а затем оценки на втором, но есть ли более короткий и более простой способ?
Макет в C#:
bool AreYouSwedishFemale(Human patient)
{
if(patient.isFemale && patient.isSwedish) {return true;}
else {return false;}
}
int PlayTetris(Human patient)
{
return someInt;
}
void myMainLoop()
{
Human[] testSubjects = {humanA, humanB, humanC};
Human dreamGirl;
int lowestScoreSoFar; //What should this be?
//Loop through testSubjects
foreach(Human testSubject in testSubjects)
{
//Check if it's a Swedish Female
if(AreYouSwedishFemale(testSubject))
{
//If so, compare her score to the lowest score so far
if(PlayTetris(testSubject) < lowestScoreSoFar) //Error, uninitialized variable
{
//If the lowest, save the object to a variable
dreamGirl = testSubject;
//And save the score, to compare the remaining scores to it
lowestScoreSoFar = PlayTetris(testSubject);
}
}
}
//In the end we have the result
dreamGirl.marry();
}
Да, я на самом деле не ищет девушек бить в тетрис, я кодирования в единстве, но пытался сохранить эту независимую от контекста.
Это сработало, спасибо! – DiMarzio