💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
if语句是最基础最可塑的条件关键字,提供你的应用中大部分的条件控制语句。条件表达式在if 后面的括号中,如果表达式返回 true,那么语句块里的代码会被执行: ~~~ if ( 3 == 3 ) someVar = someValue; // rest of application ~~~ 如果多于一条待执行的语句,要使用花括号把代码围起来: ~~~ if ( 3 == 3 ) { someVar = 1; someVar++; } // rest of application ~~~ if语句后面的行或者代码块只有在条件返回true的时候才被执行。你可以反转条件语句的值,通过提供一个否定条件操作符,或者否定整个表达式,通过符号 (!) 执行: ~~~ if ( 3 != 3 ) // do this... ~~~ 前面的代码和这个代码作用相同: ~~~ if ( ! 3 == 3 ) // do this... ~~~ 否定操作符改变条件表达式的返回值,所结果原来为true就返回false,原来是false就返回true 。它不会改变if语句的规则。但是,如果需要一个false结果的执行语句,可以使用 else 关键字,提供另一个执行逻辑。else 必须跟在if执行代码块之后: ~~~ if ( 3 == 3 ) // if true, execute this line else // otherwise, execute this line ~~~ 可以嵌套if语句,所以可以在多个条件满足的时候执行代码: ~~~ if ( thatVar == thatValue ) { if ( thisVar == thisValue ) { // do code } } ~~~ 嵌套的if 语句表示只有外部的 if 语句为ture 才会执行。可以在 if 语句中组合表达式,使用条件操作符。因此,可以重写这个例子: ~~~ if ( thatVar == thatValue & & thisVar == thisValue ) { // do code } ~~~ 当使用这种方式组合语句,虚拟机仍然认为这是单独的来执行。意思是说,如果前两个表达式返回false,那么第二个表达式不会执行,所以任何数据修改在第二个表达式中都不会发生。例如: ~~~ var myInt = 3; if ( 4 == 3 & & ++myInt == 4 ) { // do code } trace( myInt ); ~~~ 这里,一个期望 myInt 等于 4,因为 前递增操作。但是,因为表达式 4==3 不成立,第二部分表达式不会被执行,所以 myInt 被输出值为 3 。 嵌套 if 语句 通常是优先选择的,虽然有时候它是必须的因为逻辑流程。然而,通过组合条件语句为一个单独的 if 语句,只有一个表达式执行了验证,不是两个。然而,这个增加是忽略的,不会影响你的决策。 当嵌套一个 if 语句在 else 块,实际上提供一个新的分支测试一个表达式的相等。 ~~~ if ( myVar == 1 ) // do this... else if ( myVar == 2 ) // do this else if ( myVar == 3 ) // repeat as necessary ... else // if all else fails, do this ~~~ if 语句用这种方式可以嵌套任意深度,尽管他们没有必要用这种缩进方式。多数开发人员通常提供嵌套的 if 关键字 直接在 else 关键字之后,提供一个新的语句类型: ~~~ if ( myVar == 1 ) // do this... else if ( myVar == 2 ) // do this... else if ( myVar == 3 ) // repeat as necessary ... else // if all else fails, do this ~~~ 就像你看到的,这使你的代码看起来整洁易读。最后的 else 块用在嵌套 if 语句格式的最后,如果所有else 都失败,意味着任何比较都没有达成,执行这里的语句。 整理if 语句可以使你的代码大大缩短,虽然这是你的自由。例如: ~~~ if ( 3 == 3 ) myVar++; else myVar--; ~~~ 还可以更易读: ~~~ if ( 3 == 3 ) myVar++ else myVar--; ~~~ 如果你看了最后的示例,可能注意到 else 关键字之前的表达式不能立即用分号结尾。这是为了帮助使整个 if 语句更易读,允许单行语句直接跟随在条件表达式之后。