Главная страница
    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.082 c
2-1210930398
Irina_GR
2008-05-16 13:33
2008.06.08
печать в QReport


2-1210936185
Fasco
2008-05-16 15:09
2008.06.08
Здравствуйте помогите дилетанту


2-1210706730
Julia
2008-05-13 23:25
2008.06.08
Поменять язык


15-1209294414
Foo Fighters
2008-04-27 15:06
2008.06.08
если в папке находится ярлык на нее же ... глюк WMP 11?


15-1209196391
Kolan
2008-04-26 11:53
2008.06.08
Как создать такую (см. каритнку) форму в InnoSetup?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский