shape1
shape2
shape3
shape4
shape7
shape8

Switch


Batka1337

Хацкер-программист
Пользователь
08.12.2014
363
154
0
26
Так как много, кто забыл завести к себе в мод switch, решил сделать урок по нему дабы напомнить.
 
Switch - это оператор выбора, он значительно удобен для использования и быстрее(не проверял, но вроде так)

Разберём на примере:
Допустим мне надо проверить переменную crmp и сделать выводы после проверки, например дать что-то

Способ if,else:

 ​
Код:
if(crmp == 1) SendClietMessage(playerid,-1,"Так се");
else if(crmp == 2) SendClietMessage(playerid,-1,"Ну норма");
else if(crmp == 3) SendClietMessage(playerid,-1,"Вот вот уже почти");
else if(crmp == 4) SendClietMessage(playerid,-1,"Браво");
else SendClietMessage(playerid,-1,"Ты никто");
Способ switch:
 ​
Код:
switch(crmp)
{
	case 1: SendClietMessage(playerid,-1,"Так се");
	case 2: SendClietMessage(playerid,-1,"Ну норма");
	case 3: SendClietMessage(playerid,-1,"Вот вот уже почти");
	case 4: SendClietMessage(playerid,-1,"Браво");
	default:SendClietMessage(playerid,-1,"Ты никто");
}
Выглядит гораздо лучше.

Как вы уже поняли по пример else в switch'e нам заменяет default, то есть если ничего не подошло.
Так же есть возможность делать промежутки и один вывод для нескольких проверок.
Не очень объяснил, ну думаю по примеру поймёте:

Способ if, else:


 ​
Код:
if(crmp > 0 && crmp < 5) SendClietMessage(playerid,-1,"НУ МАЛА");
else if(crmp == 5 || crmp == 6) SendClietMessage(playerid,-1,"ТАДА НАМАНА");
Способ switch:
 ​
Код:
switch(crmp)
{
	case 1..4: SendClietMessage(playerid,-1,"НУ МАЛА");
	case 5,6: SendClietMessage(playerid,-1,"ТАДА НАМАНА");
}
Также ещё одна плюшка swith'a это проверка символа без strfind и strcmp.
Например нам надо проверить что в str[1] находиться буква "s":

 ​
Код:
str = "osa";
switch(str[1])
{
	case 's': SendClietMessage(playerid,-1,"ТАМА S");
	default: SendClietMessage(playerid,-1,"ТАМА НЕТ S");
}
 

Zippar

Новичок
Пользователь
04.09.2016
13
2
0
Очень понятно объяснил! + твой! Это первый урок, который мне помог. Я нуб в павно :D83DDE0F:   :D83DDE0F:   :D83DDE0F:   :D83DDE0F: