当前位置: 首页 > 面试题库 >

您可以在if子句中存储变量吗?

蔚和安
2023-03-14
问题内容

我有点在等待这个问题的答案。

我很想知道是否可以在if子句中检查变量的同时保存变量。

假设我有这段代码。

if(foo!=null){
  if(foo.getBar()!=null){
    Bar bar = foo.getBar();
    System.out.println("Success: " + bar);
  } else {
    System.out.println("Failure.");
  }
} else {
  System.out.println("Failure.");
}

我现在独立处理“失败”状态,即使结果相同。我可以像这样将它们聚在一起:

if(foo!=null && foo.getBar()!=null){
  Bar bar = foo.getBar();
  System.out.println("Success: " + bar);
} else {
  System.out.println("Failure.");
}

已经有很多更整洁的代码。如果foo为null,它将在那里停止并且不会尝试foo.getBar(在if中),因此我不会获得NPE。我要增强的最后一件事是主要问题:我真的给两次foo.getBar()打电话吗?如果getBar()是一个非常繁重的操作,那么最好摆脱第二个相同的调用。所以我想知道是否有可能做些类似的事情:

if(foo!=null && (Bar bar = foo.getBar())!=null){
  Bar bar = foo.getBar();
  System.out.println("Success: " + bar);
} else {
  System.out.println("Failure.");
}

如果我想做的话,我必须将其分解为两个不同的部分

Bar bar = foo.getBar();
if (bar!=null) ...

问题答案:

这是您可以获得的最接近的:

Bar bar;
if(foo!=null && (bar = foo.getBar())!=null){
  System.out.println("Success: " + bar);
} else {
  System.out.println("Failiure.");
}


 类似资料:
  • 问题内容: 我正在努力实现以下目标: 我有一个ORDER BY语句,该语句可能会根据列A中存储的值而有所不同。 例如: 如果类型是成员,则按成员姓氏排序;如果类型是组,则按组名字排序 两者均以升序排列。 我对最终声明的最佳猜测是: 我知道这是错误的,但无法在其他地方找到信息。有任何想法吗? 问题答案: 好了,您可以在MySQL中使用该 函数 (请注意,因为还有一个不相关的语句,所以要重点说明)…:

  • 问题内容: 如何在SQLite中的查询中编写如下所示的IF EXISTS?我读到某处SQLite中不存在IF子句。有什么更好的替代方法呢? 问题答案: 只需按照标准的SQL方式执行即可: 当然,假设your和实际上是布尔值(就像MySQL一样,SQLite用1和0表示)。 这应该可以在任何SQL数据库中使用,甚至有些可以进行特殊优化以支持该习惯用法。

  • 问题内容: 我正在使用PHP和ajax命令来获取外部网页的全部HTML内容(通过PHP 命令),并将该HTML传递到javascript变量中。将页面的HTML内容存储在变量中后,是否可以使用jQuery与该变量的内容进行交互,就像jQuery通常与DOM进行交互的方式一样?在此示例中,我试图搜索具有特定ID属性的某些HTML元素(和标签)的存在。谁能建议我可以做到这一点? 问题答案: 如果我对您

  • 问题内容: 我想知道是否可以像这样在条件运算符中为变量赋值: 用Java有什么办法做到这一点?因为我知道在某些情况下这是可能的,但是我不确定在if语句中是否做错了或者是否不可能。 问题答案: 可以分配变量,但不能在条件语句中声明变量:

  • 问题内容: 我只是想知道我是否可以做类似的事情: 通过执行以下操作: 我写的内容行不通,但是有类似的功能吗? 问题答案: 是的,但是您不会像这样写切片。您写。

  • 问题内容: 例如: 这可能吗?最好的选择是什么? 问题答案: 推荐的方法是使用匿名函数: 如果要存储已经声明的函数,则可以简单地通过名称将其引用为字符串: 在PHP的旧版本(<5.3)中,不支持匿名函数,您可能需要诉诸使用(自PHP 7.2起已弃用): 所有这些方法在伪类型的文档中列出。 无论选择哪种功能,都可以直接调用该函数(PHP≥5.4)或使用: