Ограничение цикла for - PullRequest
0 голосов
/ 17 апреля 2019

Итак, у меня небольшая проблема с частью моего кода, у меня есть система, которая добавляет контрольные точки в программу, и я хочу, чтобы она добавляла контрольную точку каждые 14 минут, но я также хочу ограничить ее толькодобавить х количество контрольных точек в зависимости от количества часов курса.Так, для примера, первый курс имеет 12 часов, поэтому я хочу создать только 12 контрольных точек, но он создает 16 на основе $ time_in_secs, так что переменная всегда будет отличаться, так как она проверяет время между датой начала и окончания программы,Для второй программы у нее есть 24 часа, но она создает 33 контрольных точки и так далее, и так далее.$ checkpoint_limit - это то, что я хочу ограничить циклом for, но мне все еще нужно добавить 840, так как это время в секундах, и мне нужна контрольная точка, создаваемая каждые 14 минут

Я сделал несколько разных вещейно ни один из них, казалось, не работал.Попытка установки min () также пыталась сделать if, но также, похоже, не работает.

$checkpoint_limit = (abs($numHours) * 3);
//840 = 14 minute interval * 60
for ($i = 840; $i < $time_in_secs; $i += 840) {
//Code here that adds the checkpoints
}

Ответы [ 2 ]

0 голосов
/ 17 апреля 2019

В проверке цикла на отсутствие созданных контрольных точек и, если они превышают $ checkpoint_limit, прервать цикл.

Попробуйте:

$checkpoint_limit = (abs($numHours) * 3);
$no_of_checkpoints = 0;
//840 = 14 minute interval * 60
for ($i = 840; $i < $time_in_secs; $i += 840) {
    //Code here that adds the checkpoints
    $no_of_checkpoints++;
    if($no_of_checkpoints > $checkpoint_limit){
         break;
    }
}
0 голосов
/ 17 апреля 2019

Используйте второе условие внутри цикла для оператора &&. Например;

$j=0
for($i=840;$i<$timeInSecs && $j<12;$i +=840)
{
 //example code here
$j++
}

Прошу прощения за некачественный ответ, я использую SO mobile и не смог опубликовать код. Так что переменная j похожа на время контрольной точки. Вы добавили 14-минутную контрольную точку, и я хочу, чтобы вы ее зациклили для определенного количества вы можете сделать это таким образом. И вы должны увеличить $ j в конце цикла for.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...