我知道这可能是重复的问题,但我没有找到足够的答案来回答我的例子。总体而言,语句和表达式之间有什么区别?这是我还没有完全区分的区别。我知道通常表达式被认为是任何返回值的东西,比如文字或函数。语句通常被说成是解释器的命令,比如“打印这个”或“做……直到”。然而,我不明白。
难道说打印(print)不是一个表达式吗,因为它是一个将输入(input)打印输出(output)的函数吗?同时,人们通常说x = 1是一个语句,但这不可以被视为一种表达式,其中赋值运算符是作用于两个输入并且输出是x指向1的函数吗?最后,if……else这样的流程控制结构是否可以被看作是一个三参数函数,在第一个输入的真值基础上返回其他参数之一,使其成为一个表达式?
我可能会感到困惑,因为我有LISP的背景,那里的一切都是表达式。似乎我无法摆脱这样的想法,即大多数编程结构在本质上都是表达式。因此,有人能解释一下所谓的语句和表达式之间的真正区别吗?
难道说打印(print)不是一个表达式吗,因为它是一个将输入(input)打印输出(output)的函数吗?同时,人们通常说x = 1是一个语句,但这不可以被视为一种表达式,其中赋值运算符是作用于两个输入并且输出是x指向1的函数吗?最后,if……else这样的流程控制结构是否可以被看作是一个三参数函数,在第一个输入的真值基础上返回其他参数之一,使其成为一个表达式?
我可能会感到困惑,因为我有LISP的背景,那里的一切都是表达式。似乎我无法摆脱这样的想法,即大多数编程结构在本质上都是表达式。因此,有人能解释一下所谓的语句和表达式之间的真正区别吗?
x = 1
是一个表达式,而x = 1;
则是一个语句。在Ada语言中,x := 1
不是一个表达式,但x := 1;
是一个语句。 - Keith Thompson