java - while 和 if 语句中的代码无法访问
问题描述
下面的代码无法编译,因为x=3
无法访问
while (false) { x=3; }
但为什么for( int i = 0; i< 0; i++) {x = 3;}
编译得很好?在此代码x=3
中也是无法访问的。
解决方案
包含的语句 [在 while 循环中] 是可到达的,当且仅当 while 语句可到达且条件表达式不是值为 false 的常量表达式时。
false
是一个常量表达式,其值为false
,因此x=3;
不可访问。
包含的语句 [在基本的 for 循环中] 是可访问的,前提是 for 语句是可达的并且条件表达式不是一个值为 false 的常量表达式。
i<0
不是常量表达式,因此包含的语句被认为是可访问的,即使它实际上不可访问。
推荐阅读
- c# - UWP 从控件继承
- ios - 我在 swift 的最后一个版本之前对我的应用程序进行了编程,现在我正在尝试运行我的应用程序,但我遇到了这个错误
- mysql - 用 WHERE 从 JOIN 加入
- docker - Docker:获取映像中安装的文件列表
- authentication - 需要对本地 IP .Net Core 进行身份验证的中间件
- ios - 手机号码验证支持 voip、分机或手机号码(国内+国际号码)的最佳方式
- java - 如何使用 Selenium 3 定位 ZK DOM 节点?
- php - laravel POST 在邮递员中工作,但不适用于 react-native 中的 axios 实例
- javascript - 带复选框的材料选择菜单
- reactjs - 为什么 create-react-app 将 App.js 组件更改为基于函数的组件?