tra*_*mot 4 java if-statement conditional-statements
如果您有这样的代码:
if (A > X && B > Y)
{
Action1();
}
else if(A > X || B > Y)
{
Action2();
}
Run Code Online (Sandbox Code Playgroud)
用A > X和B > Y,是否if-else-if会执行梯子的两个部分?
我正在处理存在此问题的Java代码.我通常在C++中工作,但在两种语言中都是一个非常新的(和零星的)程序员.
Ada*_*331 13
不,他们不会同时执行.它按照你如何编写它们的顺序排列,逻辑上这是有道理的; 即使第二个读取'else if',你仍然可以将其视为'else'.
考虑一个典型的if/else块:
if(true){
// Blah
} else{
// Blah blah
}
Run Code Online (Sandbox Code Playgroud)
如果您的第一个陈述是真的,那么您甚至不必在其他情况下查看需要做什么,因为它是无关紧要的.同样地,如果你有'if/elseif',你就不会浪费你的时间来看待后续的块,因为第一个是真的.
现实世界的例子可能是分配成绩.你可能会尝试这样的事情:
if(grade > 90){
// Student gets A
} else if(grade > 80){
// Student gets B
} else if(grade > 70){
// Student gets c
}
Run Code Online (Sandbox Code Playgroud)
如果学生得到99%,所有这些条件都是正确的.但是,你不会指派学生A,B和C.
这就是为什么订单很重要.如果我执行了这段代码,并将B块放在A块之前,你就会为同一个学生分配一个B而不是A,因为A块不会被执行.