Какие значения можно считать "истинными", а какие "ложными"?
Если значение больше или меньше нуля, то оно истинно, иначе ложно и не важно целое значение или вещественное(с точкой)
Пример: -1.0 = true 100500 = true 0 = false 0.0 = false
Булевый тип вообще понять просто, там либо true, либо false!
А теперь по теме. Во-первых, конструкция if(a[client] == true) - самый настоящий быдлокод! Во-вторых, сравнение через оператор равенства занимает больше времени.
Буль он и в африке буль. Это как переключатель, либо включен, либо выключен.
Если ты хочешь выполнить что-либо, когда переменная приняла Истинное значение, используй if(a[client]) { твой код }, а если Ложное if(!a[client]) { твой код }
Теперь про время затраченное на условие.
Если у тебя переменная НЕ булевого типа и тебе нужно сравнить ее с -1 (-1 в сурспавне повсюду), большинство используют такое
if(MoyaPeremennaya == -1) {} - на выполнение такого условия удет больше времени чем на это if(MoyaPeremennaya < 0) {}
А вообще все это придет с опытом, если будешь много читать о том, как устроено программирование в целом, научишься всем тонкостям.
Пример использования Булевого типа: Всем когда-нибудь приходилось делать переключатель(допустим в менюшке) и большинство сооружают такую хрень.
new bool:Switch = false;
*****
if(Switch == false) { Switch = true; PrintToChatAll("Света нет"); } else if(Switch == true) { Switch = false; PrintToChatAll("Свет есть"); }
отсюда вопрос, зачем так мучать себя?
решение куда проще
new bool:Switch = false;
***
Switch = !Switch //все! переключатель готов! Теперь просто нужно что-то выполнить в зависимости от положения "переключателя"
// Так делают когда много чего нужно выполнить на каждое положение if(Switch) { PrintToChatAll("Свет есть"); } else { PrintToChatAll("Света нет"); }
// а так, если просто вывести сообщение
PrintToChatAll("%s", Switch ? "Свет есть": "Света нет"); // Happy End!
П.C. Надеюсь, когда-нибудь, с лица земли исчезнет быдлокод!
Сообщение отредактировал хвостег - Воскресенье, 21.09.2014, 13:50:18 |