Распространенные вопросы

И учебу можно сделать интересной!

Подпись:

Оператор присвоения в BASIC и путаница с ним

Попробуем решить уравнение  Х = Х + 1. Перенесем Х с обратным знаком из правой части в левую, получим абсурд:
 0 = 1, т.е.  решения нет. Так почему же подобные выражения постоянно встречаются в
BASIC ?…

Более того, выражение в первой строке, оказывается, вообще не содержит знака равенства! Здесь знакомый с начальной школы знак
« = »  означает вовсе не «равно», а... «присвоить» !
Увидев подобное выражение,
BASIC вычисляет выражение в правой части и присваивает его значение переменной в левой части. Если переменная в правой и левой частях одна и та же, то удобно читать такое выражение так:

 «К старому значению Х прибавляется 1 и полученное присваивается новому значению Х»

(в данном случае в результате Х просто увеличивается на единицу)

Всегда ли в BASIC этот знак означает присваивание? - Нет!
В логических выражениях он означает традиционное
«равно», например:
   
If  X = 5  Then  Beep
Как же понять, где это «равно», а где «присвоить»?
В
BASIC есть служебное слово  Let,  указывающее на то, это оператор присвоения. В ранних версиях языка оно было обязательным, что исключало путаницу. Наш пример записывался бы:  Let  X = X + 1, однако, в современных версиях BASIC это слово не обязательно и его как правило не пишут. Так что приходится разбираться по смыслу…

Замечание: в ПАСКАЛе, например, для присвоения используют специальный символ « := » и путаницы с выражением  X := X + 1 
не возникает.

Hosted by uCoz