Statement в программировании что это
Перейти к содержимому

Statement в программировании что это

  • автор:

Выражения и инструкции

Делим весь код на две группы — одна возвращает значения, другая — нет.

Время чтения: 6 мин

Открыть/закрыть навигацию по статье
Контрибьюторы:

Обновлено 19 апреля 2024

Кратко

Скопировать ссылку «Кратко» Скопировано

Выражение (англ. expression) — это код, который после выполнения возвращает какое-либо значение. Например, 5 + 3 вернёт 8 , а Math . random ( ) — случайное число.

Инструкция (англ. statement) — это отдельная команда в коде, которая выполняет определённое действие. Например, if позволяет создать ветвление в программе, for позволяет повторять одно и то же действие.

Как понять

Скопировать ссылку «Как понять» Скопировано

Выражения

Скопировать ссылку «Выражения» Скопировано

Любая программа — это набор операций. Чтобы описать программу, разработчик пишет различные выражения на языке программирования. Посмотрим на самое простое выражение — откроем консоль любого браузера и введём туда элементарное выражение — число.

 123 123      

Когда мы нажмём Enter , консоль ответит нам тем же самым числом. Поздравляю, это было самое простое выражение. Интерпретатор JavaScript выполнил его и вернул результат последней (в данном случае единственной) операции.

Первое выражение

Усложним пример и добавим немного действий. Введём в консоль браузера классическую математическую задачку на внимательность:

 2 + 2 * 2 2 + 2 * 2      

JavaScript разбирается в математике, и потому в результате выполнения такого выражения мы получим число 6 . Как JavaScript считал?

2 + 2 * 2 — составное выражение. В нем есть как выражения, представляющие числа, так и выражения, представляющие операции с числами. Таких выражений может быть много, с их помощью мы комбинируем и трансформируем значения.

Составные выражения лучше понимать в виде схемы:

Схема выражения 2 + 2 * 2

Операциям сложения и умножения нужны два выражения — левое и правое, чтобы вычислить результат. В левой части сложения будет число 2, а в правой — составное выражение 2 * 2 , которое будет аналогично разбираться по частям.

Рассмотрим пример чуть сложнее. Введём в консоль:

 (1 + 3) * (4 - 2) (1 + 3) * (4 - 2)      

Схематично выражение можно представить так:

Схема выражения (1 + 3) * (4 - 2)

Как и в предыдущем примере, можно проследить из каких частей состоит выражение и как эти части связаны. В итоге мы получим ответ 8 .

Из всех перечисленных примеров можно сделать вывод, что выражения оперируют с данными. Это могут быть не только числа, но и строки, и сложные структуры данных. Данные сочетаются с операциями над ними (например, сложение, вычитание, умножение), и программа выдаёт результат выражения. Удобно представлять выражение как наборы данных в сочетании с операциями, которые их обрабатывают. Схематично программу, состоящую из выражений, можно изобразить как последовательность блоков.

Схема последовательных выражений

Инструкция

Скопировать ссылку «Инструкция» Скопировано

Работа с данными — это ещё не всё, что нужно для создания программы. Выражения решают не так много вопросов: как описать с помощью выражения действие по определённому условию? Да, у нас будут данные и можно написать выражение, чтобы вычислить условие, но как попросить программу сделать то или иное действие? А если какое-то действие нужно повторить несколько раз?

Для этого в языках программирования существуют инструкции. Они не являются выражениями, но позволяют правильно настроить порядок их выполнения.

Например, используя инструкцию if , написать программу с условием:

 const someNumber = getSomeRandomNumber() if (someNumber > 10)  console.log('Больше десяти')> else  console.log('Меньше десяти')> const someNumber = getSomeRandomNumber() if (someNumber > 10)  console.log('Больше десяти') > else  console.log('Меньше десяти') >      

Инструкции ничего не вычисляют и не возвращают результат, поэтому они не являются выражениями. Например, инструкция if позволяет описать несколько путей выполнения программы. Её условие будет вычислено с помощью выражения num > 10 (является выражением и возвращает булев результат), а внутри условных веток так же будут присутствовать другие выражения. Вызов функции — это выражение и оно возвращает результат.

Таким образом, объединяя всего одну инструкцию с выражениями, мы получаем программу с ветвлением:

Схема ветвления

На самом деле, в JavaScript есть выражение, которое позволяет возвращать значение по условию. Таким выражением является тернарный оператор. Как любое выражение, он возвращает значение.

 const result = someNumber > 10 ? 'Больше десяти' : 'Меньше или равно десяти' const result = someNumber > 10 ? 'Больше десяти' : 'Меньше или равно десяти'      

Используя инструкцию for или while , можно зациклить какое-то действие:

 let sum = 0 // В этой строчке инструкцией является for// и объявление переменной, а всё остальное — выраженияfor (let i = 1; i < 10; i++)  // Прибавляем значение, это является выражением sum = sum + 1> let sum = 0 // В этой строчке инструкцией является for // и объявление переменной, а всё остальное — выражения for (let i = 1; i  10; i++)  // Прибавляем значение, это является выражением sum = sum + 1 >      

И точно так же, объединяя инструкцию с другими выражениями, мы получаем более осмысленную программу.

Схема цикла

В JavaScript все инструкции можно поделить на несколько категорий:

  • управление потоком выполнения ( if и else , switch , throw и так далее);
  • итерации ( for , while и так далее);
  • объявление значений ( var , let , const );
  • функции ( function , return и так далее);
  • прочие ( debugger , import , export ).

Написать программу можно только совмещая выражения, которые работают с данными, и инструкции, которые позволяют управлять порядком выполнения.

Выражения + Инструкции = ❤️

Как писать

Скопировать ссылку «Как писать» Скопировано

�� С практической стороны стоит помнить главную особенность инструкций — их нельзя использовать в местах, где ожидается выражение. Чтобы понять о чем идёт речь, посмотрим на пример:

 getBioAbout( if (num > 10) else )// SyntaxError: Unexpected token 'if getBioAbout( if (num > 10)  return 'Шерлок' > else  return 'Ватсон' > ) // SyntaxError: Unexpected token 'if      

Такой пример не будет работать. В качестве аргумента при вызове можно передавать простое выражение (например, конкретную строку ‘Илон Маск’ или число 5 ), либо составное выражение, которое вычислит и вернёт значение (например, вызов другой функции get Current User ( ) ). Но передавать инструкцию в функцию нельзя.

Передаём составное выражение, которое вычислит и вернёт строку:

 getBioAbout('Илон Маск')getBioAbout('Шерлок' + ' ' + 'Холмс')getBioAbout(getCurrentUser()) getBioAbout('Илон Маск') getBioAbout('Шерлок' + ' ' + 'Холмс') getBioAbout(getCurrentUser())      

�� Последовательные инструкции можно разделять оператором точка с запятой ; .

 const num = 5 if (5 if (5 > 10) <> const num = 5 if (5  10) > if (5 > 10) >      

А вот выражения можно разделять через оператор запятая , . В этом случае все выражения выполнятся по порядку слева направо, но результат вернётся только от последнего в цепочке. Оператор запятая почти не используется, так как он часто усложняет код.

 function x()  return 1>function z()  return 2> x(), z()// Вернётся значение 2,// потому что z() выполнился последним function x()  return 1 > function z()  return 2 > x(), z() // Вернётся значение 2, // потому что z() выполнился последним      

Разница между statement, expression и block(инструкция, выражение и блок)

Выражение это фрагмент кода, результатом которого является некая величина. Инструкция фрагмент кода, изменяющий состояние окружения в котором выполняется программа.

Это определение взял из книги по javascript(http://eloquentjavascript.net/), думаю оно действует в контексте любого языка. Но всё же любопытно: насколько оно исчерпывающее.

Из определения следует:

  • sum = 2 + 3; — инструкция содержащая выражение
  • var sum; — просто инструкция без выражения
  • 2+3; — просто выражение, но выражения без инструкций бессмысленны(кроме случаев отладки) т.к. с результатом нужно что-то делать/где-то хранить его.

Блок — набор из нескольких инструкций.

Отслеживать
ответ дан 3 сен 2016 в 21:41
151 7 7 бронзовых знаков

Выражение(англ. Expression) — инструкция, присваивающая правую часть выражения левой части (выражает левую через правую).

Инструкция ( англ. Statement ) — в программировании, команда языка программирования, которым задается определенный шаг процесса обработки информации на ЭВМ.

1. Любое выражение — это инструкция.
2. Не каждая инструкция — выражение.

a = 1; выражение int a = 10; инструкция и выражение (сначала [var a] — инструкция которая не является выражением т.к. присваивания нет, а потом уже [a = 10] — выражение, которое можно также назвать инструкцией). if (a < 2)<>else<> и т.д. — инструкция, но не выражение, ибо ничего не выражается, но действия происходят. Точно также и с w = x+y+z : 1. x+y+z // инструкция, но не выражение. 2. w = //если вы введете сюда код что вернула инструкция (x+y+z) — выражение и инструкция присваивания одновременно 

Блок(англ. Block) — это 0 или больше инструкций помещенных между фигурными скобками и может быть помещен в том месте кода, где это дозволяется. Например:

 class BlockDemo < public static void main(String[] args) < boolean condition = true; if (condition) < // начало блока 1 System.out.println("Condition is true."); >// конец блока 1 else < // начало блока 1 System.out.println("Condition is false."); >// конец блока 2 > > 

Как правильно перевести термины Statement и Declaration?

Я перевожу статью по ST. В ней есть 2 термина statement и declaration. Я прекрасно понимаю, что это разные понятия. Например, вот, declaration программы:

PROGRAM PLC_PRG END_PROGRAM;

А вот statement:

К сожалению я на русском мало читал технических статей, и мой запас терминов на русском — слабый. Как правильно перевести эти 2 термина? У меня в голове одно и тоже слово для 2х этих терминов.

  • Вопрос задан более трёх лет назад
  • 3732 просмотра

Комментировать
Решения вопроса 1

neurocore

Программист, переставляющий камни
Наиболее подходящими в данном контексте я считаю:
Declaration — объявление
Statement — определение
Ответ написан более трёх лет назад
Нравится 3 5 комментариев
Sergey Romanov @Serhioromano Автор вопроса
Sergey Romanov @Serhioromano Автор вопроса
Только мне кажется наоборот.

neurocore

Sergey Romanov, Точно не наоборот.
Sergey Romanov @Serhioromano Автор вопроса

Declaration — объявление
Statement — команда

По моему не плохо подходит

EgoRusMarch

megorit @EgoRusMarch

НЭТ!
statement — инструкция (дословно как заявление но корректнее будет как инструкция)
operator — оператор (типа for, while, +, -, /, *, =, return и т.д., но for (init;condit;modif) < . >— это уже statement)
declaration — объявление
definition — определение

Ответы на вопрос 4

EgoRusMarch

megorit @EgoRusMarch
C++ Developer

  • Statement — инструкция (дословно как «заявление»). Это всё, что заканчивается точкой с запятой (;) или является управляющей конструкцией (но не само ключевое слово)
  • Operator — оператор. Это: +, , /, *, =, >, , ==, &&, ||. А также ключевые слова: if, for, while, return, continue, break, goto. Но это уже statements:
    • for (init;condit;modif) < . >
    • return value;
    • result = op_1 + op_2;

    Ответ написан более трёх лет назад
    Комментировать
    Нравится 4 Комментировать
    statement => оператор
    declaration => объявлений
    Ответ написан более трёх лет назад
    Sergey Romanov @Serhioromano Автор вопроса
    Не получится так как есть термен Operator уже и это (*)-+ и т.д.

    Оператор — это перевод и для Operator и для Statement. Имеет разное значение в зависимости от контекста.

    Например, в переводе C# Language Specification, п.1.5 Statements переведен как оператор:
    «The actions of a program are expressed using statements. C# supports several different kinds of statements, a number of which are defined in terms of embedded statements . » => «Действия программы выражаются с помощью операторов. В C# поддерживается несколько различных типов операторов, некоторые из которых определяются как внедренные операторы. . «.
    А в п.1.4 Expressions:
    «Expressions are constructed from operands and operators. The operators of an expression indicate which operations to apply to the operands. Examples of operators include +, -, *, /, and new. » = > «Выражения состоят из операндов и операторов. Операторы в выражении указывают, какие операции производятся с операндами. К операторам относятся, например, +, -, *, / и new. «

    Урок №8. Структура программ

    Компьютерная программа — это последовательность инструкций, которые сообщают компьютеру, что ему нужно сделать.

    Оглавление:

    1. Стейтменты
    2. Выражения
    3. Функции
    4. Библиотеки
    5. Пример простой программы
    6. Синтаксис и синтаксические ошибки
    7. Тест
    8. Ответы

    Стейтменты

    Cтейтмент (англ. «statement») — это наиболее распространенный тип инструкций в программах. Это и есть та самая инструкция, наименьшая независимая единица в языке С++. Стейтмент в программировании — это то же самое, что и «предложение» в русском языке. Мы пишем предложения, чтобы выразить какую-то идею. В языке C++ мы пишем стейтменты, чтобы выполнить какое-то задание. Все стейтменты в языке C++ заканчиваются точкой с запятой.

    Есть много разных видов стейтментов в языке C++. Рассмотрим самые распространенные из них:

    std :: cout << x ;

    int х — это стейтмент объявления (англ. «statement declaration»). Он сообщает компилятору, что х является переменной. В программировании каждая переменная занимает определенное число адресуемых ячеек в памяти в зависимости от её типа. Минимальная адресуемая ячейка — байт. Переменная типа int может занимать до 4 байт, т.е. до 4 адресуемых ячеек памяти. Все переменные в программе должны быть объявлены, прежде чем использованы. Мы детально поговорим о переменных на следующих уроках.

    х = 5 — это стейтмент присваивания (англ. «assignment statement»). Здесь мы присваиваем значение 5 переменной х .

    std::cout стейтмент вывода (англ. «output statement»). Мы выводим значение переменной х на экран.

    Выражения

    Компилятор также способен обрабатывать выражения. Выражение (англ. «expression») — это математический объект, который создается (составляется) для проведения вычислений и нахождения соответствующего результата. Например, в математике выражение 2 + 3 имеет значение 5 . Выражения в языке С++ могут содержать:

    отдельные цифры и числа (например, 2 , 45 );

    буквенные переменные (например, х , у );

    операторы, в т.ч. математические (например, + , — );

    Выражения могут состоять как из единичных символов — цифр или букв (например, 2 или х ), так и из различных комбинаций этих символов с операторами (например, 2 + 3 , 2 + х , х + у или (2 + х) * (y — 3) ). Для наглядности разберем простой корректный стейтмент присваивания х = 2 + 3; . Здесь мы вычисляем результат сложения чисел 2 + 3 , который затем присваиваем переменной х .

    Функции

    В языке C++ стейтменты объединяются в блоки — функции. Функция — это последовательность стейтментов. Каждая программа, написанная на языке C++, должна содержать главную функцию main(). Именно с первого стейтмента, находящегося в функции main(), и начинается выполнение всей программы. Функции, как правило, выполняют конкретное задание. Например, функция max() может содержать стейтменты, которые определяют большее из заданных чисел, а функция calculateGrade() может вычислять среднюю оценку студента по какой-либо дисциплине.

    Совет: Всегда размещайте функцию main() в файле .cpp с именем, совпадающим с именем проекта. Например, если вы пишете программу Chess, то поместите вашу функцию main() в файл chess.cpp.

    Библиотеки

    Библиотека — это набор скомпилированного кода (например, функций), который был «упакован» для повторного использования в других программах. С помощью библиотек можно расширить возможности программ. Например, если вы пишете игру, то вам придется подключать библиотеки звука или графики (если вы самостоятельно не хотите их создавать).

    Язык C++ не такой уж и большой, как вы могли бы подумать. Тем не менее, он идет в комплекте со Стандартной библиотекой С++, которая предоставляет дополнительный функционал. Одной из наиболее часто используемых частей Стандартной библиотеки C++ является библиотека iostream, которая позволяет выводить данные на экран и обрабатывать пользовательский ввод.

    Пример простой программы

    Теперь, когда у вас есть общее представление о том, что такое стейтменты, функции и библиотеки, давайте рассмотрим еще раз программу «Hello, world!»:

    std :: cout << "Hello, world!" ;

    Строка №1: Специальный тип инструкции, который называется директивой препроцессора. Директивы препроцессора сообщают компилятору, что ему нужно выполнить определенное задание. В этом случае мы говорим компилятору, что хотели бы подключить содержимое заголовочного файла к нашей программе. Подключение заголовочного файла дает нам возможность использовать функционал библиотеки iostream, что, в свою очередь, позволяет выводить нам данные на экран.

    Строка №2: Пустое пространство, которое игнорируется компилятором.

    Строка №3: Объявление главной функции main().

    Строки №4 и №7: Указываем компилятору область функции main(). Всё, что находится между открывающей фигурной скобкой в строке №4 и закрывающей фигурной скобкой в строке №7 — считается содержимым функции main().

    Строка №5: Наш первый стейтмент (заканчивается точкой с запятой) — стейтмент вывода. std::cout — это специальный объект, используя который мы можем выводить данные на экран.

    Строка №6: Оператор возврата return. Когда программа завершает свое выполнение, функция main() передает обратно в операционную систему значение, которое указывает на результат выполнения программы: успешно ли прошло выполнение программы или нет.

    Если оператор return возвращает число 0 , то это значит, что всё хорошо! Ненулевые возвращаемые значения указывают на то, что что-то пошло не так и выполнение программы было прервано. Об операторе return мы еще поговорим детально на соответствующем уроке.

    Синтаксис и синтаксические ошибки

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

    Язык C++ также имеет свой синтаксис: правила написания кода/программ. При компиляции вашей программы, компилятор отвечает за то, чтобы ваша программа соответствовала правилам синтаксиса языка C++. Если вы нарушили правила, то компилятор будет ругаться и выдаст вам ошибку.

    Например, давайте посмотрим, что произойдет, если мы не укажем в конце стейтмента точку с запятой:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *