Оператор if в Си
От: Ant55 Россия  
Дата: 01.10.04 04:23
Оценка:
Всем привет. Вместо if (i == 1), Предложили решение, писать if (1 == i), чтобы избежать ошибки if(i = 1). Грамотное ли это предложение?
Re: Оператор if в Си
От: Nuald Россия http://nuald.blogspot.com
Дата: 01.10.04 04:34
Оценка:
Здравствуйте, Ant55, Вы писали:

A>Всем привет. Вместо if (i == 1), Предложили решение, писать if (1 == i), чтобы избежать ошибки if(i = 1). Грамотное ли это предложение?


Конечно, хотя немного и некрасиво выглядит. Данную проблему еще можно порешать, включив 4-ый уровень предупреждений (хотя может и 3-го хватит) — тогда компилятор выдаст предупреждение, что типа "при сравнении происходит присваивание"...
Re: Оператор if в Си
От: ddanila Россия  
Дата: 01.10.04 04:35
Оценка:
Здравствуйте, Ant55, Вы писали:

A>Всем привет. Вместо if (i == 1), Предложили решение, писать if (1 == i), чтобы избежать ошибки if(i = 1). Грамотное ли это предложение?


С точки зрения компилятора — всё равно, просто обычно это делается для того, чтобы исключить ошибку вида:
if(i = 1). Если написать так, то компилятор выдаст в лучшем случае warning (и условие всегда будет истинно), а вот если написать if(1 = i), то будет ошибка. Между тем, это очень частая ошибка — писать "=" вместо "=="
Re[2]: Оператор if в Си
От: SWW Россия  
Дата: 01.10.04 05:18
Оценка: 1 (1) :))) :)))
A>>Всем привет. Вместо if (i == 1), Предложили решение, писать if (1 == i), чтобы избежать ошибки if(i = 1). Грамотное ли это предложение?

D>С точки зрения компилятора — всё равно, просто обычно это делается для того, чтобы исключить ошибку вида:

D>if(i = 1). Если написать так, то компилятор выдаст в лучшем случае warning (и условие всегда будет истинно), а вот если написать if(1 = i), то будет ошибка. Между тем, это очень частая ошибка — писать "=" вместо "=="

В таких случаях надо добавлять IMHO. Потому что у меня, например, таких ошибок не бывает. Бывает наоборот, пишу "==" на месте присваивания. Наверное из-за того, что в слове "равно" два слога и когда его произносишь, на каждый слог давишь кнопку.
Re: Оператор if в Си
От: Tan4ik Россия  
Дата: 01.10.04 05:42
Оценка:
Здравствуйте, Ant55, Вы писали:

A>Всем привет. Вместо if (i == 1), Предложили решение, писать if (1 == i), чтобы избежать ошибки if(i = 1). Грамотное ли это предложение?


Предложение грамотное. Но принять его или нет — это решаешь только ты. Например, я пишу (i == 1) и ошибки не было еще ни разу. Переходить на (1 == i) не собираюсь.
---
С уважением,
Лазарев Андрей
Re[2]: Оператор if в Си
От: DavidSel  
Дата: 01.10.04 05:54
Оценка:
Здравствуйте, Tan4ik, Вы писали:

T>Здравствуйте, Ant55, Вы писали:


A>>Всем привет. Вместо if (i == 1), Предложили решение, писать if (1 == i), чтобы избежать ошибки if(i = 1). Грамотное ли это предложение?


T>Предложение грамотное. Но принять его или нет — это решаешь только ты. Например, я пишу (i == 1) и ошибки не было еще ни разу. Переходить на (1 == i) не собираюсь.



Вообще Билл рекомендует использовать именно такой стиль
История нас рассудит...
Re[3]: Оператор if в Си
От: PVA  
Дата: 01.10.04 06:18
Оценка: :))) :))
Здравствуйте, SWW, Вы писали:

SWW>В таких случаях надо добавлять IMHO. Потому что у меня, например, таких ошибок не бывает. Бывает наоборот, пишу "==" на месте присваивания. Наверное из-за того, что в слове "равно" два слога и когда его произносишь, на каждый слог давишь кнопку.

А на "==" пишешь "==="? В слове "сравнимо" три слога.

Хотя ошибка эта, IMHO, достаточно редкая.
newbie
Re[4]: Оператор if в Си
От: SWW Россия  
Дата: 01.10.04 06:22
Оценка:
PVA>А на "==" пишешь "==="? В слове "сравнимо" три слога.

Ты когда пишешь i == 1 говоришь "и сравнимо с единицей"? Я-то говорю "равно"...
Re: Оператор if в Си
От: Vamp Россия  
Дата: 01.10.04 06:23
Оценка:
Это вопрос религии
Одни говорят, что так не напишешь присваивание вместо сравнения. Другие парируют, что они и так не напишут, а запись 1 == i выглядит неестественно.
Какждый сам себе выбирает, кроме тех, у кого coding standards.
Да здравствует мыло душистое и веревка пушистая.
Re: Оператор if в Си
От: jazzer Россия Skype: enerjazzer
Дата: 01.10.04 06:50
Оценка: +1
Здравствуйте, Ant55, Вы писали:

A>Всем привет. Вместо if (i == 1), Предложили решение, писать if (1 == i), чтобы избежать ошибки if(i = 1). Грамотное ли это предложение?


если ты хочешь потестить результат выполнения какой-нть функции, а вызов функции длинный, то лучше писать в стиле "1==" — гораздо читабельнее
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[5]: Оператор if в Си
От: Eleon Россия www.newedge.ru
Дата: 01.10.04 07:28
Оценка: :))) :))) :))
Здравствуйте, SWW, Вы писали:

PVA>>А на "==" пишешь "==="? В слове "сравнимо" три слога.


SWW>Ты когда пишешь i == 1 говоришь "и сравнимо с единицей"? Я-то говорю "равно"...


Я вообще молча
Силам добра не одержать победы над силами Разума!
Re: Оператор if в Си
От: Mikka77  
Дата: 01.10.04 07:52
Оценка: -1 :)))
Здравствуйте, Ant55, Вы писали:

A>Всем привет. Вместо if (i == 1), Предложили решение, писать if (1 == i), чтобы избежать ошибки if(i = 1). Грамотное ли это предложение?


Вроде как обработка 1==i идет быстрее
"Количество времени, необходимое для решения задачи, не зависит от того, было это время использовано для решение данной задачи или нет." ©Mikka77
Re[2]: Оператор if в Си
От: Andrew S Россия http://alchemy-lab.com
Дата: 01.10.04 07:58
Оценка:
A>>Всем привет. Вместо if (i == 1), Предложили решение, писать if (1 == i), чтобы избежать ошибки if(i = 1). Грамотное ли это предложение?

M>Вроде как обработка 1==i идет быстрее


И насколько, позвольте полюбопытствовать?
http://www.rusyaz.ru/pr — стараемся писАть по-русски
Re[3]: Оператор if в Си
От: Mikka77  
Дата: 01.10.04 08:30
Оценка:
Здравствуйте, Andrew S, Вы писали:

A>>>Всем привет. Вместо if (i == 1), Предложили решение, писать if (1 == i), чтобы избежать ошибки if(i = 1). Грамотное ли это предложение?


M>>Вроде как обработка 1==i идет быстрее


AS>И насколько, позвольте полюбопытствовать?


Ну...да в общем-то глупость сморозил
"Количество времени, необходимое для решения задачи, не зависит от того, было это время использовано для решение данной задачи или нет." ©Mikka77
Re: Оператор if в Си
От: s.ts  
Дата: 01.10.04 09:00
Оценка:
Hello, Ant55!
You wrote on Fri, 01 Oct 2004 04:23:57 GMT:

A> Всем привет. Вместо if (i == 1), Предложили решение, писать if (1 == i),

A> чтобы избежать ошибки if(i = 1). Грамотное ли это предложение?

Ну... судя по http://www.rsdn.ru/article/career/interv.xml
Автор(ы): Джоэль Спольски (Joel Spolsky)
на собеседовании всегда нужно писать 1==i
Posted via RSDN NNTP Server 1.9 gamma
Re[4]: Оператор if в Си
От: Astaroth Россия  
Дата: 04.10.04 08:30
Оценка:
Здравствуйте, PVA, Вы писали:

PVA>Хотя ошибка эта, IMHO, достаточно редкая.


У новичков и пришельцев из паскаля — очень частая.
WinAmp играет: (умолк пока)
http://livejournal.com/users/breqwas
Re[2]: Оператор if в Си
От: SWW Россия  
Дата: 04.10.04 08:34
Оценка:
ST>Ну... судя по http://www.rsdn.ru/article/career/interv.xml
Автор(ы): Джоэль Спольски (Joel Spolsky)
на собеседовании всегда нужно писать 1==i

ST>

На собеседовании лучше говорить правду. Будет обидно если окажется, что такой стиль в этой конторе не приветствуется.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.