Итак, вот логика, которую я пытаюсь реализовать:
date120 = date5;
date90 = min(date90,date120);
date60 = min(date60, date90, date120);
date30 = min(date30,date60,date90,date120);
где функция min находит самое низкое ПОЛОЖИТЕЛЬНОЕ целое число.
А вот как я это зацикливаю:
if(strStatus != "5" && date5 >= 0)
{
date120 = date5;
COUT<<"date30 is "<<date30<<" and date60 is "<<date60<<" and date120 is "<<date5<<" and date90 is "<<date90<<ENDL;
if((date120 < date90) && (date120 >= 0))
{
date90 = date120;
COUT<<"and date90 is "<<date90<<ENDL;
if((date90 < date60) && (date90 >= 0))
{
date60 = date90;
COUT<<"and date60 is "<<date60<<ENDL;
if((date60 < date30) && (date60 >= 0))
{
date30 = date60;
COUT<<"and date30 is "<<date30<<ENDL;
}
}
if((date60 < date30) && (date60 >= 0))
date30 = date60;
}
if((date90 < date60) && (date90 >= 0))
{
date60 = date90;
COUT<<"and date60 is "<<date60<<ENDL;
if((date60 < date30) && (date60 >= 0))
date30 = date60;
}
if((date60 < date30) && (date60 >= 0))
{
date30 = date60;
COUT<<"and date30 is "<<date30<<ENDL;
}
COUT<<"Because there was a 5 and date30 is "<<date30<<" and date60 is "<<date60<<ENDL;
}
А вывод в логах выглядит так:
date30 is -1 and date60 is -1 and date120 is 15 and date90 is -1
Because there was a 5 and date30 is -1 and date60 is -1
Что-то не так с моей логикой? Я что-то упускаю из логики? Есть ли более простой способ сделать это?