Можно ли зациклить switch case

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
168
Реакции
43
Предупреждения
5
Помог
2 раз(а)
Всем привет, пишу такое простенькое меню, и хотел спросить можно ли как ни будь зациклить switch кейсы в menu_handler?
Код:
switch(i_Key) {
    for(new count = 1; count != 8; count++) {
        case count: client_print_color(id, id, "Кнопка #%d", count);
    }
}
12 Фев 2023
При попытке скомпилировать код выше выходит ошибка:
Код:
error 002: only a single statement (or expression) can follow each "case"
 
Сообщения
1,419
Реакции
2,509
Помог
59 раз(а)
Внутри switch обязательно case или default должен быть, внутри которых уже можно писать нужный код, например цикл. Если такой вариант не подходит, тогда нужно делать вне switch.
 
Сообщения
964
Реакции
51
Помог
10 раз(а)
Нет, switch(i_Key) {только case}
client_print_color(id, id, "Кнопка #%i", i_Key);
Думаю достаточно этого!!
 
Сообщения
168
Реакции
43
Предупреждения
5
Помог
2 раз(а)
twisterniq, можете пожалуйста какой ни будь пример привести? Я уже не могу найти другое решение;
Мне надо именно через for принимать в menu_handler, есть решение?
12 Фев 2023
может можно без switch обойтись
 
Сообщения
1,419
Реакции
2,509
Помог
59 раз(а)
yamusaka, не особо понимаю, для чего этого, какой результат должен быть? Вариантов здесь два, если нужно делать цикл: делать его снаружи, либо делать его внутри определённого случая (case). Лучше напишите какую цель преследуете, возможно вообще не нужен цикл, либо не нужен switch.

Код:
for (new i = 1; i <= 8; i++) {
    switch (key) {
        case 0: {
            ...
        }
        case 1: {
            ...
        }
    }
}
Код:
switch (key) {
    case 0: {
        for (new i = 1; i <= 8; i++) {
            ...
        }
    }
    case 1: {
        ...
    }
}
 
Сообщения
775
Реакции
291
Помог
11 раз(а)
yamusaka, if elseни кто не отменял. Либо сам цикл в кейс пихать
 
Сообщения
964
Реакции
51
Помог
10 раз(а)
maFFyoZZyk, зачем тут вообще цикл?? Чтобы вывести в сообщение какую кнопку нажал player?
 
Сообщения
775
Реакции
291
Помог
11 раз(а)
Code_0xABC, я хз, какой должен быть конечный результат
 
Сообщения
964
Реакции
51
Помог
10 раз(а)
yamusaka, ты более информативно объясни, что ты в целом хочешь сделать, что бы тебе дали правильный ответ
 
Сообщения
168
Реакции
43
Предупреждения
5
Помог
2 раз(а)
Code_0xABC, допустим мне просто нужно узнать какую кнопку нажал игрок
 
Сообщения
964
Реакции
51
Помог
10 раз(а)
yamusaka, выше я тебе написал, достаточно этого!Ты кстате скинь обработчик меню, новое или старое меню у тебя
 
Сообщения
168
Реакции
43
Предупреждения
5
Помог
2 раз(а)
Я сейчас вот так создаю само меню
Код:
for(new count = 1; count != sizeof(Массив); count++) {
      new text[64];
       formatex(text, 63, "Купить (%d$)", Массив[count]);
      menu_additem(menu, text, "%d", count);
   }
12 Фев 2023
maFFyoZZyk, if else скучно
 
Сообщения
964
Реакции
51
Помог
10 раз(а)
Без всяких if и switch
client_print_color(id, id, "%n, ты выбрал пункт #%i", id, i_Key +1);
%n -если версия amx >= 1.9.0
Иначе get_user_name
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу