Как можно переписать этот код, чтобы избежать использования оператора "goto" и сделать его более читабельным?
При написании кода следует предпочитать использование структур управления, таких как циклы, условные операторы и функции. Оператор goto считается неудачным с точки зрения читаемости и поддержки кода, поэтому его использование следует избегать.
Пример переписанного кода без использования оператора goto:
```c
#include <stdio.h>
int main() {
int num;
printf("Введите число от 1 до 5: ");
scanf("%d", &num);
if(num < 1 || num > 5) {
printf("Ошибка: число должно быть от 1 до 5.\n");
} else {
switch(num) {
case 1:
printf("Вы ввели число один.\n");
break;
case 2:
printf("Вы ввели число два.\n");
break;
case 3:
printf("Вы ввели число три.\n");
break;
case 4:
printf("Вы ввели число четыре.\n");
break;
case 5:
printf("Вы ввели число пять.\n");
break;
}
}
return 0;
}
```
Этот код более читабельный и легко поддерживаемый, так как используются стандартные структуры управления.
<pre><code class="php">function rotateToLast($streamArrUrl, $streamUrl, $stream) {
if (count($streamArrUrl) === 0) {
return;
}
if (empty($streamUrl)) {
$streamArrUrl = [$streamUrl];
return;
}
if (ipTV_lib::$settings["priority_backup"] === 1) {
return;
}
if (empty($stream["server_info"]["current_source"])) {
return;
}
$sourceIdx = array_search($stream["server_info"]["current_source"], $streamArrUrl);
if ($sourceIdx === false) {
return;
}
$tmp = array_slice($streamArrUrl, $sourceIdx + 1);
array_splice($streamArrUrl, $sourceIdx + 1);
$streamArrUrl = array_merge($tmp, $streamArrUrl);
}
rotateToLast($streamArrUrl, $streamUrl, $stream);</code></pre>