在java中有可能吗?(要执行的代码)if(condition)

Rad*_*dek 2 java if-statement rft

请注意,我不是java大师.我可能没有使用正确的术语,我在RFT中学习Java.下面描述的内容与所述完全相同.


在ruby中,我们可以编写代码

(code to execute) if (condition)
Run Code Online (Sandbox Code Playgroud)

我想做同样的事情,所以我的RFT(Rational Functional Tester)代码很容易阅读.我将以一种看起来像的方式调用我的自定义函数

        findANDclick(new String[]{"id", "menuButton"});
        findANDclick(new String[]{"src", ".*homeicon_calendar.*"}); 
        findANDclick(new String[]{"src", ".*cycle_templates.*"});   
Run Code Online (Sandbox Code Playgroud)

但是,如果任何findANDclick函数"失败",整个RFT脚本需要完成并且不执行任何其他代码.该函数在html页面中搜索对象,如果它没有找到任何throws new Exception通过

throw new Exception("findANDclick: the object was not found");
Run Code Online (Sandbox Code Playgroud)

所以findANDclick ONLY实例会抛出一个错误,所以执行下一个findANDclick.但如果没有找到并单击上一个对象,则继续寻找下一个对象是没有意义的.

我想我可以将变量continue设置为true,如果抛出异常,findANDclick会将其更新为false.然后我可以做类似的事情

    if (continue) { findANDclick(new String[]{"id", "menuButton"});}
    if (continue) { findANDclick(new String[]{"src", ".*homeicon_calendar.*"}); }   
    if (continue) { findANDclick(new String[]{"src", ".*cycle_templates.*"});   }
Run Code Online (Sandbox Code Playgroud)

如果我可以做类似的话会很棒

        { findANDclick(new String[]{"id", "menuButton"}); } if (continue)
        { findANDclick(new String[]{"src", ".*homeicon_calendar.*"}); } if (continue)
        { findANDclick(new String[]{"src", ".*cycle_templates.*"}); } if (continue)
Run Code Online (Sandbox Code Playgroud)

Mat*_*arz 5

那段代码并不漂亮.为什么不简单地抓住Exception?这就是它们的用途.所以类似于:

try { 
   findANDclick(new String[]{"id", "menuButton"});
   findANDclick(new String[]{"src", ".*homeicon_calendar.*"});    
   findANDclick(new String[]{"src", ".*cycle_templates.*"});   
}
catch (Exception e) {
}
Run Code Online (Sandbox Code Playgroud)

如果任何findANDclick调用失败,则后续的调用将不会执行...

顺便说一句,continue是Java中的保留字,因此您不能将其用作变量名.