📜  JS++ |条件语句

📅  最后修改于: 2022-05-13 01:55:18.346000             🧑  作者: Mango

JS++ |条件语句

各种条件语句在 JS++ 中起着核心作用。在本教程中,我们将了解此类语句的基本语法和一些常见用法,并且我们还将介绍在条件中经常使用的两种表达式:运算符和逻辑运算符。

注意:JS++ 条件、运算符和逻辑运算符的工作方式与它们在 JavaScript、 Java、C++ 和 C# 等语言中的对应项类似。

让我们从创建一个新文件夹开始——将其命名为“Conditionals”。然后创建一个新文件并将其命名为“Conditionals.jspp”。编写以下代码:

external $;

string colorString;
bool likesRed = true;
if (likesRed) {
    colorString = "red";
}

$("#content").text(colorString);
$("#content").css("color", colorString);

将 Conditionals.jspp 保存到 Conditionals 文件夹。然后创建第二个名为“Conditionals.html”的文件并写入以下内容:


Conditionals program


将 Conditionals.html 保存到您的 Conditionals 文件夹。编译 Conditionals.jspp,然后在浏览器中打开 Conditionals.html。如果一切正常,您的文档应该以红色字体显示“红色”。

“如果”、“否则”和“如果”

Conditionals.jspp 显示了一个简单if语句的语法:关键字if本身,后跟一对括号,其中包含要检查的条件,然后是花括号中的代码块,当且仅当条件为真时才会执行。

Simple If Diagram

注意:如果代码块仅包含一条语句,则代码块周围的花括号是可选的。但是,为了一致性和可读性,建议始终使用花括号。

虽然if语句经常单独使用,但它们也经常与else语句一起使用。让我们在 Conditionals.jspp 中添加一条else语句:

external $;
    
string colorString;
bool likesRed = true;

if (likesRed) {
    colorString = "red";
}
else {
    colorString = "blue";
}
    
$("#content").text(colorString);    
$("#content").css("color", colorString);

编译此代码,然后在浏览器中打开 Conditionals.html。结果是一样的:文档仍然以红色字体显示“红色”。原因是else块中的代码仅在关联的if语句中的条件为 false 时才会执行。要执行else块中的代码,请将likesRed的值更改为false : Conditionals.html 然后将以蓝色字体显示“blue”。

请注意, else语句没有指定它自己的条件。在 Conditionals.jspp 中检查的唯一条件是likesRed 。我们只是有一个代码块,如果条件为真,则执行,如果条件为假,则执行另一个代码块。

If Else Diagram

然而,在某些情况下,我们希望代码的执行依赖于多个条件。这就是else if语句可以证明有用的地方。 else if语句提供它自己的条件和关联的代码块。如果条件为真且所有先前的条件(即与之前的ifelse if语句相关联的条件)为假,则代码块执行。让我们再次修改 Conditionals.jspp 以展示else if语句的使用:

external $;

string colorString;
bool likesRed = false;
bool likesBlue = true;

if (likesRed) {
    colorString = "red";
}
else if (likesBlue) {
    colorString = "blue";
}
else {
    colorString = "green";
}

$("#content").text(colorString);
$("#content").css("color", colorString);

这里else if块中的代码将执行,因为它的likesBlue条件为真,而前面if语句指定的likesRed条件为假。但是,如果我们将likesBlue的值更改为 false, else if块中的代码将不会执行,但else块中的代码会执行。自己玩一下likesRedlikesBlue的值,看看它们对条件的执行有什么影响。

运算符

通常,当我们使用条件时,是因为我们希望代码的执行依赖于某种比较的结果。例如,假设我们要检查tempInCelsius变量的值是否等于 0,如果是,则执行一些代码。我们会写:

if (tempInCelsius == 0) {
    // Code to be executed goes here
}

此条件使用相等运算符“==”。如果比较值相等,则相等比较返回 true,否则返回 false。

注意:相等运算符“==”与赋值运算符“=”不同。注意这个区别!如果您不小心使用“=”代替“==”,您将在代码中引入可能难以发现的错误。

除了“==”之外,JS++ 还包含各种运算符。为了扩展温度检查示例,假设我们想检查的不是tempInCelsius确切值,而是它落在什么范围内。我们的代码可能如下所示:

if (tempInCelsius > 30) {
    // Code to execute if temperature is over 30
}
else if (tempInCelsius >= 15) {
    // Code to execute if temperature is between 15 and 30
}
else {
    // Code to execute if temperature is 14 or below
}

此示例使用大于运算符“>”,如果左操作数大于右操作数,则返回 true;大于或等于运算符“>=”,如果左操作数大于或等于,则返回 true到右操作数。您可以在此处查看完整的运算符:

JS++中的运算符

逻辑运算符

有时我们希望代码仅在多个条件为真时才执行。为此,一种选择是使用嵌套条件,例如:

external $;

string colorString;
bool likesRed = true;
bool likesBlue = true;
    
if (likesRed) {
    if (likesBlue) {
        colorString = "I have a wide taste in colors";
        $("#content").text(colorString);
    }
}

通过以这种方式将likesBlue条件置于likesRed条件中,我们确保当且仅当两个条件都为真时, likesBlue块中的代码才会执行。

尽管嵌套条件可用于此类目的,但是它们往往会使代码难以阅读,尤其是当涉及的条件很复杂时。另一种方法是使用逻辑运算符“&&”。让我们将嵌套条件替换为:

if (likesRed && likesBlue) {
    colorString = "I have a wide taste in colors";
    $("#content").text(colorString);
}

“&&”语句有两个操作数,通常都是布尔表达式。假设它们是,如果两个操作数都为真,则语句返回真,否则返回假。因此,上面的代码与前面的嵌套条件具有相同的效果:当且仅当likesRedlikesBlue都为 true 时,代码块才会执行。然而,“&&”条件比嵌套条件更容易阅读,因此更可取。

除了“&&”之外,JS++ 还包含另外两个逻辑运算符: OR运算符“||”和NOT运算符“!”。 “||”是像“&&”这样的二元运算符:它需要两个操作数。假设两者都是布尔表达式,如果至少一个操作数为真,则该语句返回真,否则返回假。 “||”如果您希望在一个条件为真或另一个条件为真时执行某些代码的情况下很有用:

if (likesRed || likesBlue) {
    colorString = "I like at least one color";
    $("#content").text(colorString);
}

“!”不同于“&&”和“||”因为它是一元运算运算符:它需要一个操作数。如果操作数为假,则返回真,如果操作数为真,则返回假。例如:

if (!likesRed) {
    colorString = "I do not like red";
    $("#content").text(colorString);
}

注意:虽然操作数由“&&”和“||”控制通常是布尔表达式,它们不必是。涵盖操作数为非布尔值的情况,“&&”和“||”更精确地定义如下:如果左操作数为假,则“&&”语句返回假;否则返回右操作数的值。一个“||”如果左操作数为真,则语句返回真;否则返回右操作数的值。

切换语句

有时您需要您的程序来处理各种不同的可能性并在每种情况下执行不同的代码。尽管您可以通过使用带有多个else if语句的条件来实现这一点,但使用switch语句通常更简单。 switch语句计算表达式并将其值与一个或多个case表达式进行比较;如果这些case表达式之一提供了匹配,则执行一些关联的代码。

Switch Diagram

举个例子:

external $;

string favoriteColor;
string colorComment;
favoriteColor = "green";
    
switch (favoriteColor) {
    case "red":
        colorComment = "red is fantastic";
        break;
    case "blue":
        colorComment = "blue is wonderful";
        break;
    case "green":
        colorComment = "green is magical";
        break;
    case "yellow":
        colorComment = "yellow is brilliant";
        break;
    default:
        colorComment = "I have no favorite color";
        break;
}
    
$("#content").text(colorComment);

在此示例中, switch语句将字符串favoriteColor的值与列出的各种case表达式进行比较。当它找到匹配项时,它会执行相关的代码。由于favoriteColor的值为“green”,switch 语句执行与该案例相关的代码:字符串colorComment设置为“ green is magical magic”。

breakdefault关键字的用途是什么? break关键字非常重要,因为如果您想防止所谓的“失败”,就需要它。当 switch 语句在匹配的 case之后执行与一个或多个 case 关联的代码时,就会发生故障。例如,如果您删除绿色案例末尾的break ,则 switch 语句将继续将colorComment设置为“ yellow is brilliant ”。在极少数情况下,您可能需要这种失败;如果是这样,你会故意省略break。 (还建议您添加一条注释,明确表明该失败是有意的。)但是,通常您会希望在每个案例的末尾包含break

如果没有任何 case 表达式与原始表达式匹配,则执行default子句中的代码。 default子句是可选的:如果您不提供,则程序会在 switch 语句之后的第一条语句处恢复执行。