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

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
217
Реакции
63
Помог
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,420
Реакции
2,511
Помог
58 раз(а)
Внутри switch обязательно case или default должен быть, внутри которых уже можно писать нужный код, например цикл. Если такой вариант не подходит, тогда нужно делать вне switch.
 
Сообщения
1,082
Реакции
58
Помог
11 раз(а)
Нет, switch(i_Key) {только case}
client_print_color(id, id, "Кнопка #%i", i_Key);
Думаю достаточно этого!!
 
Сообщения
217
Реакции
63
Помог
2 раз(а)
twisterniq, можете пожалуйста какой ни будь пример привести? Я уже не могу найти другое решение;
Мне надо именно через for принимать в menu_handler, есть решение?
12 Фев 2023
может можно без switch обойтись
 
Сообщения
1,420
Реакции
2,511
Помог
58 раз(а)
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
Реакции
293
Помог
11 раз(а)
yamusaka, if elseни кто не отменял. Либо сам цикл в кейс пихать
 
Сообщения
1,082
Реакции
58
Помог
11 раз(а)
maFFyoZZyk, зачем тут вообще цикл?? Чтобы вывести в сообщение какую кнопку нажал player?
 
Сообщения
775
Реакции
293
Помог
11 раз(а)
Code_0xABC, я хз, какой должен быть конечный результат
 
Сообщения
1,082
Реакции
58
Помог
11 раз(а)
yamusaka, ты более информативно объясни, что ты в целом хочешь сделать, что бы тебе дали правильный ответ
 
Сообщения
217
Реакции
63
Помог
2 раз(а)
Code_0xABC, допустим мне просто нужно узнать какую кнопку нажал игрок
 
Сообщения
1,082
Реакции
58
Помог
11 раз(а)
yamusaka, выше я тебе написал, достаточно этого!Ты кстате скинь обработчик меню, новое или старое меню у тебя
 
Сообщения
217
Реакции
63
Помог
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 скучно
 
Сообщения
1,082
Реакции
58
Помог
11 раз(а)
Без всяких if и switch
client_print_color(id, id, "%n, ты выбрал пункт #%i", id, i_Key +1);
%n -если версия amx >= 1.9.0
Иначе get_user_name
 
Статус
В этой теме нельзя размещать новые ответы.

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

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