Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.06.08;
Скачать: [xml.tar.bz2];

Вниз

Как сделать присваивание в операторе if?   Найти похожие ветки 

 
cvg   (2008-05-15 09:41) [0]

Собственно, сабж. Хотелось бы изобразить что-то типа
if (buf:=func(x)) = 0


 
Leonid Troyanovsky ©   (2008-05-15 09:48) [1]


> cvg   (15.05.08 09:41)  

> if (buf:=func(x)) = 0

Очень туманно.

--
Regards, LVT.


 
Игорь Шевченко ©   (2008-05-15 09:55) [2]

Здесь вам не тут.
В Паскале оператор присваивания в отличие от С не имеет значения


 
Vlad Oshin ©   (2008-05-15 10:00) [3]

переписать на MyIF =function(...var ValForCompare:tType):boolean


 
Vlad Oshin ©   (2008-05-15 10:00) [4]

Удалено модератором


 
Vlad Oshin ©   (2008-05-15 10:00) [5]

Удалено модератором


 
cvg   (2008-05-15 10:00) [6]

Ну в том смысле, что можно написать

buf := func(x);
if a and b and ( buf = 0 )
then ...

а мне вот позарез (ну или почти позарез...) надо, чтобы функция вычислялась прямо в условии. То есть, на самом-то деле условия там  очень длинное и громоздкое, и вот не хотелось бы даже заходить в эту функцию, если уже раньше получилось, что условие не выполняется. Поэтому и хочется записать

if a and b and ( (buf:=func(x)) = 0 )
then

Вроде, в каком-то из языков (м.б. Си...) такое допускается...


 
cvg   (2008-05-15 10:02) [7]

Значит, в Паскале/Делфи такое никак? :(


 
Ega23 ©   (2008-05-15 10:04) [8]


> cvg   (15.05.08 10:02) [7]
>
> Значит, в Паскале/Делфи такое никак? :(
>


if a and b and (func(x)=0)


 
Игорь Шевченко ©   (2008-05-15 10:04) [9]

Значит никак.


> а мне вот позарез (ну или почти позарез...) надо, чтобы
> функция вычислялась прямо в условии. То есть, на самом-то
> деле условия там  очень длинное и громоздкое, и вот не хотелось
> бы даже заходить в эту функцию, если уже раньше получилось,
>  что условие не выполняется


Функция-то может не вычисляться, если по условию до нее дело не дойдет.


 
cvg   (2008-05-15 10:10) [10]

Ну и пусть не вычислыется -- мне оно так и надо.

Значит, остается что-нибуть типа

if a and b and func(x,buf)
then ...

Ну а второй параметр описан в func как возвращаемый, и дальше его уже алализировать...


 
TStas ©   (2008-05-15 21:42) [11]

Простите, мне очень любопытно, а что за конечная задача, которую никак нельзя решить иначе, чем применяя сишные циничные извращения?
Меня, конечно, обругают, но ведь присвоение в операторе условия - это не просто плохо - это источнык массы глюков. Любой нормальный человек считает, что равно - это "=". Я в одной книжке даже читал упоминания, что именно из-за так называемых "операторов с побочным действием" какая-то известная программа (мне она не известна) глючит.


 
Игорь Шевченко ©   (2008-05-15 21:51) [12]


> но ведь присвоение в операторе условия - это не просто плохо
> - это источнык массы глюков


При грамотном применении глюков нет.


> Я в одной книжке даже читал упоминания, что именно из-за
> так называемых "операторов с побочным действием" какая-то
> известная программа (мне она не известна) глючит.


Не верь, хозяин, этому константинопольскому ходже. Бумага, она терпеливая.


 
Servy ©   (2008-05-15 22:11) [13]

> buf := func(x);
> if a and b and ( buf = 0 )
> then ...


А чем

if a and b then
begin
 buf := func(x);
 if (buf = 0) then
 ...
end;


не угодило? И гораздо нагляднее, чем длинный if, в котором еще в конце было бы запрятано присваивание.

Или тут борьба за коротий исходник в ущерб понятности? Тогда не тот язык выбран...



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.06.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.123 c
2-1211120855
Franzy
2008-05-18 18:27
2008.06.08
Как запустить из программы другую (консольную) программу?


15-1208917418
Slider007
2008-04-23 06:23
2008.06.08
С днем рождения ! 23 апреля 2008 среда


2-1210942831
Artin
2008-05-16 17:00
2008.06.08
Хочетья список как Object Inspector в Дельфи.


2-1210838343
Вася
2008-05-15 11:59
2008.06.08
FireBird и Year()


2-1210671008
Виктор
2008-05-13 13:30
2008.06.08
Помогите найти ошибку в коде





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский