打破简写的if语句[重复]

Posted

技术标签:

【中文标题】打破简写的if语句[重复]【英文标题】:Breaking out of shorthanded if statement [duplicate] 【发布时间】:2016-02-07 07:12:33 【问题描述】:

我喜欢使用简写的“if 语句”格式

if-condition?then-statement:else-statement

为什么这行得通...

if (num==0)break;else continue;

这不是吗?

num==4?break:continue;

认为这两个语句在逻辑上是等价的。

【问题讨论】:

您的问题是基于错误的前提。正确的语法是 if-condition ?表达式:表达式。 【参考方案1】:

第一个是语句,第二个是表达式。不能在表达式中使用语句。

if 的语法是:

if (<expression>) <statement> [else <statement>]

表达式的语法是:

<Boolean expression> ? <expression> : <expression>

语法不允许在表达式中使用语句。

【讨论】:

−1 而不是修复这个(这会使它变得面目全非)我只是注意到例如42 是一个表达式,42; 是一个语句。 @Cheers-and-hth-Alf,他仍然不能在表达式中声明。关于将表达式转化为语句,我只字未提。什么是反对票? 这里都是陈述。它的break 不能用作?: 的操作数,因为break 是一个语句并且此运算符需要表达式。 @hacks,所有运算符都需要表达式。 感谢您的解释。

以上是关于打破简写的if语句[重复]的主要内容,如果未能解决你的问题,请参考以下文章

重用函数结果的简写 if 语句

如何打破 IF 语句中的每个循环? [复制]

JavaScript 简写 if 语句,没有 else 部分

python中的if语句,简写

简写 if/else 语句 Javascript

c_cpp 简写if if语句在C中