Спокойной ночи.Для петли не действует как ожидалось
У меня есть цикл for
, чтобы рассчитать некоторые значения в течение недели, в течение нескольких недель. Мой код сравнивает день недели с количеством прошедших дней.
Работает только в понедельник, когда workday
- это то же самое, что и totdays
. Остальные дни totact
равно 0, а уравнение fianl равно NaN
.
int totdias = PrefProteos.getInt("dia",0);
int totact = 0;
float califtot = 0;
int stateday = 0;
float promdias;
float promcalif;
int workdays;
Date day = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("EE", Locale.US);
String dayweek = formatter.format(day);
if (dayweek.equals("Mon")) {
stateday = 1;
}
else if (dayweek.equals("Tue")) {
stateday = 2;
}
else if (dayweek.equals("Wed")) {
stateday = 3;
}
else if (dayweek.equals("Thu")) {
stateday = 4;
}
else if (dayweek.equals("Fri")) {
stateday = 5;
}
else if (dayweek.equals("Sat")) {
stateday = 6;
}
else if (dayweek.equals("Sun")) {
stateday = 7;
}
if (stateday >= totdias) {
workdays = 1;
promdias = totdias;
} else {
workdays = (totdias - (stateday - 1));
promdias = stateday;
}
for (int y = workdays; y == totdias;y++) {
for (int x = 1; x <= 12; x++) {
String activ=PrefProteos.getString("act" + x + "-habit", "");
if (!activ.equals("")) {
float notactiv = PrefProteos.getFloat("act" + x + "-puntdia"+y, 0);
califtot = califtot+notactiv;
totact = totact+1;
}
}
}
promcalif = califtot/(totact * promdias);
Можете ли вы разместить логарифм? – adalPaRi
'for (int y = workdays; y == totdias; y ++) {', так как вы просите использовать цикл только когда 'workdays == totdias', я бы предположил, что это может быть вашей проблемой;) – AxelH