java - 条件语句在 if-else-if 阶梯的两个部分都为真

标签 java if-statement conditional-statements

如果你有这样的代码:

if (A > X && B > Y)
{
   Action1();
}
else if(A > X || B > Y)
{
   Action2();
}

对于 A > XB > Yif-else-if 阶梯的两部分是否都将执行?

我正在处理存在此问题的 Java 代码。我通常使用 C++ 工作,但在这两种语言中我都是一个非常新的(和零星的)程序员。

最佳答案

不,它们不会同时执行。它按照您编写它们的顺序进行,从逻辑上讲这是有道理的;即使第二个读作“else if”,您仍然可以将其视为“else”。

考虑一个典型的 if/else block :

if(true){
   // Blah
} else{
   // Blah blah
}

如果您的第一个陈述是正确的,您甚至不必费心查看在 else 情况下需要做什么,因为它是无关紧要的。同样,如果您有“if/elseif”,您就不会浪费时间查看后续 block ,因为第一个 block 为真。

一个现实世界的例子可能是分配成绩。你可以尝试这样的事情:

if(grade > 90){
   // Student gets A
} else if(grade > 80){
   // Student gets B
} else if(grade > 70){
   // Student gets c
}

如果学生得到 99%,则所有这些条件都为真。但是,您不会分配学生 A、B 和 C。

这就是为什么顺序很重要。如果我执行此代码,并将 B block 放在 A block 之前,您将为同一名学生分配 B 而不是 A,因为 A block 不会被执行。

关于java - 条件语句在 if-else-if 阶梯的两个部分都为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26550990/

相关文章:

python - 基于 2 列条件的 pandas 中的条件运行计数(根据时间戳计算队列中的人数)

java - 断言语句是否会吞掉异常?

java - Jhipster实体子生成器: How to create liquibase DELTA changelogs?

c++ - While 循环和 If 语句和函数

Python 冒险游戏 -> 在 while 循环中选择 A 或 B 不起作用!

PHP boolean 值到带有修改和条件的字符串

php - PHP while 循环中没有条件?

java - 如何去掉JAVA美元格式末尾的零?

java - 使用 jool java 8 使用 Seq、Tuple 和 Streams 进行左外连接

java - 如何在 if else 条件下使用 firebase 查询