练习 1.6:条件语句

根据给定的条件,条件语句允许您的逻辑部件在一个或多个操作之间进行选择。如果您熟悉任何其它过程化编程语言,您或许知道如何使用 EGL 中提供的以下条件语句:

if

if 语句是 EGL 中最简单的条件语句。if 语句对逻辑表达式进行求值,如果该表达式为 true,则执行 if 语句中的代码。否则不会执行 if 语句中的代码。以下是 if 语句的一个示例:

if (myVariable1 == myVariable2) 
  //This code executes only if myVariable1 is equal to myVariable2
  myVariable1 = 5;
  myVariable3 = 10;
end

if else

(可选)可将 else 语句添加至 if 语句。仅当 if 语句中的逻辑表达式为 false 时才会执行 else 语句中的代码。以下是包括 else 语句的 if 语句的示例:

if (myVariable1 == myVariable2) 
  //This code executes only if myVariable1 is equal to myVariable2
  myVariable1 = 5;
  myVariable3 = 10;
else
  //This code executes only if myVariable1 is not equal to myVariable2
  myFunction();
  myVariable2 = 20;
end

可以将 if 语句嵌套至任何级别。嵌套 if 语句允许您执行更复杂的逻辑,如在下面的示例中所示:

if (myVariable1 > myVariable2) 
  myMessage = "myVariable1 is greater than myVariable2";
else
  if (myVariable1 < myVariable3)
    myMessage = "myVariable1 is less than myVariable2";
  else
    myMessage = "myVariable1 and myVariable2 are equal";
  end
end

case

单个 if else 语句只能在两部分 EGL 代码之间作出选择:如果逻辑表达式为 true 执行一部分代码,如果逻辑表达式为 false 则执行另一部分代码。为代码提供更多选项的一种方法是使用 case 语句。case 语句对表达式进行求值并在可能值列表中查找匹配项。以下是 case 语句的一个示例:

case (myCharVariable)
  when ("A")
    myMessage2 = "myCharVariable equals A";
  when ("B")
    myMessage2 = "myCharVariable equals B";
  otherwise
    myMessage2 = "myCharVariable is not A or B";
end

名为 if elsecase 的帮助主题中提供了有关条件语句的更多信息。

逻辑运算符和表达式

要为条件语句创建逻辑表达式,需要使用逻辑运算符来比较两个变量或为条件语句设置条件。以下是 EGL 中提供的一些常用运算符:

==
等于运算符对两个操作数进行比较,如果它们相等,则返回 true。
>
大于运算符对两个操作数进行比较,如果左边的操作数大于右边的操作数,则返回 true。
>=
大于或等于运算符对两个操作数进行比较,如果左边的操作数大于或等于右边的操作数,则返回 true。
 
<
小于运算符对两个操作数进行比较,如果左边的操作数小于右边的操作数,则返回 true。
<=
小于或等于运算符对两个操作数进行比较,如果左边的操作数小于或等于右边的操作数,则返回 true。
!=
不等于运算符对两个操作数进行比较,如果它们不相等,则返回 true。
&&
运算符组合两个表达式,如果这两个表达式都为 true,则返回 true。
||
运算符组合两个表达式,如果任一个表达式或两个表达式为 true,则返回 true。
!
运算符只在它后面的表达式为 false 时才返回 true。非运算符必须放在括在圆括号中的表达式的前面。
在名为逻辑表达式的主题中提供了有关这些运算符以及如何使用它们的更多信息以及逻辑表达式的示例。

在 Web 页面上使用条件语句

在下面的步骤中,将创建使用条件语句来响应用户输入的 Web 页面。

  1. 在“项目资源管理器”视图中,单击 EGLWeb 项目以选择它。
  2. 从菜单栏中,单击文件 > 新建 > Faces JSP 文件。将打开“新建 Faces JSP 文件”向导。
  3. 名称字段中,输入以下名称作为文件名:

    IfTest

  4. 选择从页面模板创建复选框。
  5. 单击下一步
  6. 页面模板类型下面,单击用户定义的页面模板
  7. 缩略图下面,单击 A_gray.htpl 模板。
  8. 单击完成。这就会将新文件添加至项目,并且该文件会在编辑器中打开。
  9. 在新文件中,删除文本 Place your page content here
  10. 在删除文本的位置,输入 Testing conditional statements,然后按 Enter 键。
  11. 右键单击页面,然后单击编辑页代码。将打开页代码文件。
  12. 删除页代码文件中的所有代码并用以下代码替换它:
  13. package pagehandlers;
    
    PageHandler IfTest 
      {view="IfTest.jsp", onPageLoadFunction=onPageLoad}
    
    //Variables
    
    a int {value=10};
    b int {value=20};
    c int {value=30};
    msg char(50);
    
    
      Function onPageLoad()
      end
    
      Function testSimpleIf()
    
        if (a > b) 
          msg = "a > b";
        else
    
          if (b > a)
            msg = "b > a";
          else
            msg = "b = a";
          end
    
        end   
    
      end
    
      Function compoundAnd()
        if ((a > b) && (a > c)) 
          msg = "a is highest value";
        else
    
          if ((b > a) && (b > c))
            msg = "b is highest value";
          else
    
            if ((c > a) && (c > b))
              msg = "c is highest value";
            else
              msg = "Two or three values are equal.";
            end
    
          end
    
        end   
    
      end
    
      Function compoundOr()
    
        if ((a > b) || (a > c)) 
          msg = "a > b or a > c";
        else
    
          if ((b > a) || (b > c))
            msg = "b > a, or b > c";
          else
    
            if ((c > a) && (c > b))
              msg = "c is highest (a and b are equal)";
            else
              msg = "All values are equal";
            end
    
          end
    
        end   
     
      end
    
      Function testNotEqual()
        if (a != b) 
          msg = "a is not equal to b";
        else
          msg = "a equals b";
        end   
      end
    
    end

    以下是一些有关刚才添加的代码的技术说明:

  14. 保存并关闭该文件。
  15. 返回到 IfTest.jsp 页面。
  16. 选择“页数据”视图中的所有四个变量并将它们拖到页面上内容为 Testing conditional statements 的文本下面。将打开“插入控件”窗口。
  17. 单击更新现有记录
  18. 控件类型下面,对 msg 变量选择输出字段。让其它变量成为输入字段

    “插入控件”窗口看起来应如下所示:

    “插入控件”窗口的外观

  19. 单击选项
  20. 在“选项”窗口中,清除提交按钮删除按钮复选框。
  21. 单击确定
  22. 单击“完成”。三个 int 变量的输入字段和 char 变量的一个输出字段应就会出现在页面上。
  23. 单击新字段的下方然后按 Enter 键以插入新的空白行。

添加按钮以绑定至函数

页面需要四个按钮,每个按钮将绑定至 PageHandler 的四个函数中的每一个函数。

  1. 从“选用板”视图的 HTML 标记抽屉中,将拖到页面上输入字段和输出字段的下方。将打开“插入表”窗口。
  2. 在“插入表”窗口中,在字段中输入数字 2
  3. 单击确定。这就在页面上创建了新的表。开始时此表非常小,但可以扩展它以容纳下这些按钮。
  4. 从“选用板”视图的 Faces 组件抽屉中,将四个命令 - 按钮拖到页面上,在表中的每个单元格中分别放置一个按钮。
  5. 通过使用“属性”视图的“显示选项”选项卡选择每个按钮并将它们的名称更改为以下名称:
  6. 从“页数据”视图中,通过将 PageHandler 中的四个函数拖到对应的四个按钮上,来将每个函数绑定至页面上的每个按钮:
    1. testSimpleIf() 函数拖到简单 If(a 与 b 比较)按钮上。
    2. compoundAnd() 函数拖到复合 And(a、b 和 c)按钮上。
    3. compoundOr() 函数拖到复合 Or(a、b 和 c)按钮上。
    4. testNotEqual() 函数拖到 If Not Equal(a 与 b 比较)按钮上。

    该页面看起来应如下所示:

    IfTest.jsp 页面的外观

  7. 保存该页面。
  8. 在服务器上测试该页面并通过将一些值输入到输入字段中然后单击各按钮来尝试使用四个函数。

现在,您可以开始进行练习 1.7:循环了。

反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.