Не написано оптимальнее по какому критерию!
Если речь идёт о скорости выполнения программы, то лучше не использовать if, а заменить на логические выражения
Другие языки программирования и технологии
Что оптимальнее: if(a > 0) или if(a != 0) ?
да разные это вещи, a>0 это только положит. числа, а a!=0 так это и отрицат и положит числа
многое зависит от языка - есть ли строгая типизация или нет и имеется ли в языке автоматическое приведение типов данных. В языке со строгой типизацией не получится вместо a впихнуть строку. А в языке без строгой типизации это вполне реально и значение получится в зависимости от строки. Пусть а="некоторая строка", тогда if (a > 0) вернет true, как впрочем и if (a != 0). Но если a="0", тогда оба условия вернут обычно false. Если a=-n, где n>0, тогда if (a != 0) вернет true, а вот if (a > 0) может вернуть как true (т. е. а не конвертируется в число и рассматривается лишь как строка) , так и false (а конвертируется в число, а отрицательное число всегда меньше нуля) .
Есть еще специальное значение NULL - в зависимости от языка оно может приводиться к нулю или не приводиться ни к какому значению.
Исходя из названных особенностей надо выбирать способ выражения мысли.
Есть еще специальное значение NULL - в зависимости от языка оно может приводиться к нулю или не приводиться ни к какому значению.
Исходя из названных особенностей надо выбирать способ выражения мысли.
Зависит от поставленной задачи же. a>0 это все неотрицательные числа (кроме нуля) , а а! =0 это все (и отрицательные, и неотрицательные) числа (кроме нуля)
if(a != 0)
Арман Аринов
Почему?
Похожие вопросы
- while(!((str[i]>='0'&&str[i]<='9')||str[i]=='\0')) как перевести на человеческий язык это условие? - Язык си
- программа C# if i % x == 0 пример
- Не понимаю принцип имплекации A->B или A=>B
- Прогроммёры! C# Бошка не варит. Если есть условие if (A или Б) и истинными окажутся оба - условие будет true?
- В языке си функция if (x) {} и if(x!=0){} это дно и тоже?
- Помогите составить блок схему. Данны целые числа n, k (n>=k>=0). Вычислить n(n-1)*(n-2)... (n-k-1)/k!
- Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания. Pascal
- построить программу вывода значения ф-ции y=А*sin(wx) в виде графика, где A=0,5, w=2, x на [0;п] ,на делфи.. . нужен текс
- Почему при делении дробных чисел пишет результат 0 на С++? x1=(b+pow(d,0.5))/2/a;
- Delphi. Сумма индексов положительных (х>0) элементов. +10 даю
Да-да, туплю. Double, float и другие "не целые" типы тоже.
>Думаю, != всё же быстрее будет работать
Почему? Компилятор же каждое число будет сравнивать с нулем на равенство, а если a>0 то также будет сравнивать, но на условие "больше"
>На x86 одинаково, при условии что компилятор нормальный код сгенерит.
Почему?