首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >也是表达式的Java语句,请解释

也是表达式的Java语句,请解释
EN

Stack Overflow用户
提问于 2021-08-19 11:46:16
回答 1查看 173关注 0票数 1

请帮我从纯粹术语的角度来解释这句话:

“从技术上讲,由于变量赋值可用作进一步赋值或操作的值,因此可以将它们视为语句和表达式。”

技术上什么意思?什么不是技术上的?如果

代码语言:javascript
运行
复制
a = (b = 1);

我们所知道的:

代码语言:javascript
运行
复制
a = (b = 1); 

是陈述。

代码语言:javascript
运行
复制
(b = 1) 

是一种表达。

问题1:

A= (b = 1);也是表达式吗?或者它只是这样写成这样的表达式:a= (b = 1),不带分号,在另一个语句或表达式中使用?

第2项:

(b = 1)是否也是一种语句(假设它是一种赋值)?或者每句话都必须以;?

问题3.

B是(b = 1)中的表达式还是一个变量?

1是(b = 1)中的表达式还是文字表达式?

是a= (b = 1)中的表达式还是变量?

关于Q3的一些澄清:

我想文字和变量可以是它们自己的表达式。例如,在语句中:

代码语言:javascript
运行
复制
a = 1;

1是一个表达式。

但是,对于示例语句的内部表达式1也是这样吗:

代码语言:javascript
运行
复制
a = (b = 1); 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-19 12:01:05

表达式是可以计算为值的任何东西,所以a = (b = 1)是一个表达式(它是一个右操作数是另一个赋值表达式的赋值表达式 )。

代码a = (b = 1);是一条语句;请注意其末尾的分号;。具体来说,它是一个表达式语句。表达式语句是由编写表达式和分号组成的语句。(并非所有类型的表达式都允许作为表达式语句,例如,1 + 1;不是有效语句。)

所以严格地说,分号使这两段代码不同。但是,如果我们不是正式的,那么我们可以说a = (b = 1)可以作为表达式或语句来编写。

为了回答其他关于什么是或不是语句或表达式的问题,我建议检查Java语言规范:

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68847263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档