简短的 IF - ELSE 语句

2023-11-21

我试图使我的代码更具可读性,因此我决定使用一些简短的 IF 语句。

这是我的代码,它不起作用(“不是声明”):

jXPanel6.isVisible() ? jXPanel6.setVisible(true) : jXPanel6.setVisible(false);

这有什么问题吗?需要括号吗?在哪里?


“三元表达式”x ? y : z只能用于有条件的情况任务。也就是说,你可以这样做:

String mood = inProfit() ? "happy" : "sad";

因为三元表达式返回一些东西(类型String在此示例中)。

它并不是真的要用作短的内联if-else。特别是,如果各个部分不返回值或返回不兼容类型的值,则无法使用它。 (因此,如果两个方法碰巧返回相同的值,您可以这样做,但您不应该仅出于副作用目的而调用它)。

因此,正确的方法是使用 if-else 块:

if (jXPanel6.isVisible()) {
    jXPanel6.setVisible(true);
}
else {
    jXPanel6.setVisible(false);
}

当然可以缩短为

jXPanel6.setVisible(jXPanel6.isVisible());

对我来说,后两种表达方式都更具可读性,因为它们更清楚地传达了您想要做的事情。 (顺便说一句,您是否以错误的方式获得了条件?看起来这无论如何都是无操作,而不是切换)。

不要混淆字符数少 with 可读性。重点是最容易理解的;轻微地滥用语言特征肯定会让读者感到困惑,或者至少让他们在心里犹豫不决。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

简短的 IF - ELSE 语句 的相关文章

随机推荐

  • 如何在 Java 中将分数格式的字符串转换为 Decimal 或 Float?

    我从数据库中获取的字符串值很少 例如 1 4 2 3 但是在显示为 Android ListView 内容时 我需要将其显示为0 25 0 66 现在我不想分割字符串 然后将单个字符串转换为数字 然后 然后将它们分开即可得到结果 有谁知道
  • 如何确保我的 bash 脚本尚未运行?

    我有一个 bash 脚本 我想从 cron 每 5 分钟运行一次 但是该脚本的上一次运行可能尚未完成 在这种情况下 我希望新的运行退出 我不想只依赖 tmp 中的锁定文件 我想确保在执行锁定文件 或其他文件 之前该进程实际上正在运行 这是到
  • 为什么 [-1] 不返回文件中该行的最后一个字符?

    我想打印 python 中从文件中读取的字符串的最后一个字符 我打电话作为str 1 但它没有按预期工作 t txt 包含 Do not laugh please 9 Are you kidding me 4 我的代码是 with open
  • 如何使用 FLAG_GRANT_READ_URI_PERMISSION 授予对自定义内容提供程序的临时访问权限

    我正在尝试从另一个应用程序 应用程序 B 查询自定义内容提供程序 应用程序 A 当内容提供商没有权限保护时我可以这样做 具体来说 我在应用程序 A 上构建自定义内容提供程序 并将包含 URI 的意图发送到应用程序 B 这是App A中的意图
  • GCM 无效发件人错误

    我被一个神秘的问题困扰了一段时间 所以我在我的 Android 应用程序中实现了 GCM 但收到 INVALID SENDER 错误 我的SENDER ID是来自google项目的url的id Android 推送通知已开启 奇怪的是我已经
  • 如何卸载Python和所有包

    我希望卸载 Python 2 7 以及与其连接的所有包 我最初从官方网站安装了Python 并使用 pip install 命令安装了所有软件包 从控制面板卸载Python也会自动卸载所有包吗 我之所以要卸载Python 是因为我想使用An
  • 避免在 Kubernetes 中为一个 cron 执行点运行多个 cron 作业

    编辑 问题已解决 这是我的错误 我只是使用了错误的 cron 设置 我假设 2 每天只会在 2 点运行一次 但实际上它在 2 点之后每分钟都会运行一次 因此 Kubernetes 的行为是正确的 我一直在一个 cron 执行点运行多个作业
  • 如何使用 scipy.ndimage.filters.gereric_filter?

    我正在尝试使用 scipy ndimage filters generic filter 来计算邻域的加权和 邻域在某些时候会发生变化 但目前我正在努力实现 3x3 到目前为止 这就是我所在的地方 def Func a a np resha
  • Swift 中的数字四舍五入到小数点后两位

    我得到了一个数字值 我试图将其转换为小数点后两位 但是当我转换它时 结果变为 0 00 数字是这样的0 24612035420731018 当得到它的 2f 值时 它显示 0 00 我尝试过的代码是这样的 let digit FindRes
  • 如何获取外键引用的表

    我有一个小问题 但尚未找到答案 如何在 C 中使用 Microsoft SqlServer Smo 外键列所引用的表 foreach Column column in currentTable Columns if column IsFor
  • 如何压缩两个非连续的提交?

    我对 git 中的整个变基功能有点陌生 假设我做出了以下承诺 A gt B gt C gt D 后来我意识到D包含一个修复程序 该修复程序依赖于添加的一些新代码A 并且这些提交属于一起 我该如何压扁A D一起离开B C alone 你可以运
  • 如何从 LLVM 中的 CallInst 获取间接调用的函数名称

    Function fun call gt getCalledFunction getCalledFunction 如果是间接调用则返回 null 如何获取函数的名称或指针的名称 我发现Stack Overflow中与此问题相关的所有问题都谈
  • 在gradle中使用目标sdk版本23时,ZBAR条码扫描库不工作

    我在我的项目中使用 zbar 扫描仪库 更新到 sdk 23 后 棉花糖扫描仪无法工作 以下是 gradle 文件 扫描仪正在工作 如果我将 targetSdkVersion 设置为 23 以外的任何值 以下是gradle文件 apply
  • 按下按键后防止光标隐藏在浏览器中

    我知道在大多数浏览器 最新一代 中 当您输入 A 或空格等任何键时 鼠标光标会隐藏 这是为了让用户看到他输入的内容 一旦您将鼠标移动一个像素 光标就会恢复可见 现在问题来了 这种情况在浏览器中随处可见 即使我关注的是 div 等非输入元素
  • JavaFX 中需要使用 gradle 来定位

    我越来越 java lang NullPointerException 位置是必需的 当我使用 gradle 和 javafx 插件组装后运行我的程序时 如果我从 IntelliJ Idea 运行它 一切都很好 Java源文件和 fxml位
  • Haskell hoogle 通过 cabal 安装,但未找到 hoogle 命令

    hoogle hoogle 4 2 36 安装过程看起来很成功 除了在命令行输入 hoogle 时 它会抱怨 hoogle 找不到命令 在两台机器上尝试过这个 都运行 MAC OS X Yosemite 它们以完全相同的方式失败 有什么建议
  • 非常大的集合的 SQLAlchemy 集合成员资格

    我的 SQL 查询可以非常简单地写为 result session query Table filter Table my key in key set The my key整数列已建立索引 主键 但是key set确实可能非常大 有数千万
  • Linux (Ubuntu 11.10) 中的 Matlab 在绘图中不显示 Unicode(希伯来语)

    我尝试在 Ubuntu 上的 Matlab 图形图中使用希伯来字符 但没有成功 我试过 text 0 6 0 5 fontname times new roman rotation 180 fontsize 50 color r and t
  • 验证器中的 HTML 开始标记有误?

    我正在尝试验证此 HTML 文档http validator w3 org validate by input但我收到以下错误 第 3 行 第 47 列 杂散开始标记 html 第 4 行 第 47 列 杂散开始标记 html 第 5 行
  • 简短的 IF - ELSE 语句

    我试图使我的代码更具可读性 因此我决定使用一些简短的 IF 语句 这是我的代码 它不起作用 不是声明 jXPanel6 isVisible jXPanel6 setVisible true jXPanel6 setVisible false